Problem:
Score : 300 points

Problem Statement

Given are an integer X and an integer sequence of length N: p_1, \ldots, p_N.

Among the integers not contained in the sequence p_1, \ldots, p_N (not necessarily positive), find the integer nearest to X, that is, find the integer whose absolute difference with X is the minimum. If there are multiple such integers, report the smallest such integer.

Constraints

1 \leq X \leq 100

0 \leq N \leq 100

1 \leq p_i \leq 100

p_1, \ldots, p_N are all distinct.

All values in input are integers.

Input

Input is given from Standard Input in the following format:

X N
p_1 ... p_N

Output

Print the answer.

Sample Input 1

6 5
4 7 10 6 5

Sample Output 1

8

Among the integers not contained in the sequence 4, 7, 10, 6, 5, the one nearest to 6 is 8.

Sample Input 2

10 5
4 7 10 6 5

Sample Output 2

9

Among the integers not contained in the sequence 4, 7, 10, 6, 5, the ones nearest to 10 are 9 and 11. We should print the smaller one, 9.

Sample Input 3

100 0

Sample Output 3

100

When N = 0, the second line in the input will be empty. Also, as seen here, X itself can be the answer.

Solution in Java (OpenJDK 11.0.6) (judge verdict: Wrong Answer)

import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class Main {
	public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			
			int X = scan.nextInt();
			int N = scan.nextInt();
			int[]p = new int[N];
			Set<Integer>set = new TreeSet<Integer>();
			for(int i = 0;i<N;i++) {
				p[i] = scan.nextInt();
				set.add(p[i]);
			}
			
			if(N==0) {
				System.out.println(X);
				System.exit(0);
			}
			
			int i =1;
			int ans = 0;
			while(true) {
				
				int S = X-i;
				if(!set.contains(S)) {//含まれてないなら答え
					ans = S;
					break;
				
					
				}
				
				int D = X+i;
				if(!set.contains(D)) {//含まれてないなら答え
					ans=D;
					break;
				}
				
				i++;
				

			}
			
			System.out.println(ans);
			
			
			
			
			
			
			
			
			
		}
		
		
	}
		

	
}