import java.util.HashMap;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
HashMap<Integer, Integer> hash = new HashMap<>();
for(int a = 1 ; a <= n; a++) {
hash.put(a, 1);
}
for(int b = 0; b < lost.length; b++ ) {
hash.replace(lost[b], hash.get(lost[b])-1);
}
for(int c = 0; c < reserve.length; c++) {
hash.replace(reserve[c], hash.get(reserve[c])+1);
}
if(hash.get(1) > 1 && hash.get(2) < 1) {
hash.replace(2, hash.get(2)+1);
hash.replace(1, hash.get(1)-1);
}
if(hash.get(n) > 1 && hash.get(n-1) < 1) {
hash.replace(n - 1, hash.get(n-1)+1);
hash.replace(n, hash.get(n)-1);
}
for(int d = 2; d < hash.size(); d++ ) {
if(hash.get(d) > 1 && hash.get(d-1) < 1) {
hash.replace(d-1, hash.get(d-1)+1);
hash.replace(d, hash.get(d)-1);
}
else if(hash.get(d) >1 && hash.get(d+1) < 1) {
hash.replace(d + 1, hash.get(d+1)+1);
hash.replace(d, hash.get(d)-1);
}
}
for(Integer e : hash.keySet()) {
if(hash.get(e) > 0) answer++;
}
return answer;
}
}