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 C++ (GCC 9.2.1) (judge verdict: Wrong Answer)

#include <bits/stdc++.h>
#include<cmath>
using namespace std;
typedef long long int l1;
typedef vector <int> vi;
typedef vector <long long int> v1;
#define pb push_back
#define iter(i,a,b) for(i=a;i<b;i++)
bool f(int [],int,int);
int abs(int);
bool f(int arr[],int g,int h)
{
  int j;
  for(j=0;j<g;j++)
  {
    if(h==arr[j])
       {
         return true;
       }
       
  }
   
       return false;
}


int abs(int a)
{
  if(a>0)
    return a;
  else return -a;
}


int main()
{
    ios_base::sync_with_stdio(false);      //for fast cin and cout streams
    cin.tie(NULL);
    cout.tie(NULL);
    int test=1;
    while(test--)
{
int n,m,i;
      cin>>n>>m;
      int a[m];
      iter(i,0,m)
        cin>>a[i];
      sort(a,a+m);
      int mn=100000;
      if(m==0)
        cout<<n;
      else
      {
        for(i=-1000;i<=1000;i++)
        {
          if((f(a,m,i)==false)&&(abs(n-i)<mn))
            mn=abs(n-i);
        }
        
        for(i=-1000;i<=1000;i++)
        {
          if(abs(n-i)==mn)
          {
            cout<<i;
            break;
          }
        }
      }    

    
   

}

return 0;
}