import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
public static void main (String[] args) {
Scanner scn= new Scanner(System.in);
		
            int x=scn.nextInt();
            int n=scn.nextInt();
            HashMap<Integer,Integer> map=new HashMap<> ();
            int min=Integer.MAX_VALUE;
            int max=Integer.MIN_VALUE;
		    int a[]= new int[n];
		    for(int i=0; i<n; i++){
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            }
            if(n==0){
                System.out.println(x);
            } else 
		    System.out.println(some(a,x,n,map,min,max));
		
	}
	public static int some(int a[],int x, int n,HashMap<Integer,Integer> map, int min, int max){
        // if(x<=min) return min-1;
        // if(x>=max) return max+1; 
        if(x<min){
            if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } 
        }
        if(x>max){
            if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            }
        }
        ArrayList<Integer> al=new ArrayList<> ();
        for(int i=min; i<=max; i++){
            if(!map.containsKey(i)){
                al.add(i);
            }
        }
        if(al.size()==0){
            if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            }
        }
        int mans=Integer.MAX_VALUE;
        int ans=0;
        Collections.sort(al);
        while(al.size()!=0){
            int p=al.get(0);
            int temp=Math.abs(x-p);
            if(temp<mans){
                mans=temp;
                ans=p;
            }     
            al.remove(0);
        }
        return ans;
	}
} import java.util.*; util.* java import java.lang.*; lang.* java import java.io.*; io.* java class Main {
public static void main (String[] args) {
Scanner scn= new Scanner(System.in);
		
            int x=scn.nextInt();
            int n=scn.nextInt();
            HashMap<Integer,Integer> map=new HashMap<> ();
            int min=Integer.MAX_VALUE;
            int max=Integer.MIN_VALUE;
		    int a[]= new int[n];
		    for(int i=0; i<n; i++){
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            }
            if(n==0){
                System.out.println(x);
            } else 
		    System.out.println(some(a,x,n,map,min,max));
		
	}
	public static int some(int a[],int x, int n,HashMap<Integer,Integer> map, int min, int max){
        // if(x<=min) return min-1;
        // if(x>=max) return max+1; 
        if(x<min){
            if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } 
        }
        if(x>max){
            if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            }
        }
        ArrayList<Integer> al=new ArrayList<> ();
        for(int i=min; i<=max; i++){
            if(!map.containsKey(i)){
                al.add(i);
            }
        }
        if(al.size()==0){
            if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            }
        }
        int mans=Integer.MAX_VALUE;
        int ans=0;
        Collections.sort(al);
        while(al.size()!=0){
            int p=al.get(0);
            int temp=Math.abs(x-p);
            if(temp<mans){
                mans=temp;
                ans=p;
            }     
            al.remove(0);
        }
        return ans;
	}
} Main public static void main (String[] args) {
Scanner scn= new Scanner(System.in);
		
            int x=scn.nextInt();
            int n=scn.nextInt();
            HashMap<Integer,Integer> map=new HashMap<> ();
            int min=Integer.MAX_VALUE;
            int max=Integer.MIN_VALUE;
		    int a[]= new int[n];
		    for(int i=0; i<n; i++){
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            }
            if(n==0){
                System.out.println(x);
            } else 
		    System.out.println(some(a,x,n,map,min,max));
		
	} main {
Scanner scn= new Scanner(System.in);
		
            int x=scn.nextInt();
            int n=scn.nextInt();
            HashMap<Integer,Integer> map=new HashMap<> ();
            int min=Integer.MAX_VALUE;
            int max=Integer.MIN_VALUE;
		    int a[]= new int[n];
		    for(int i=0; i<n; i++){
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            }
            if(n==0){
                System.out.println(x);
            } else 
		    System.out.println(some(a,x,n,map,min,max));
		
	} Scanner scn= new Scanner(System.in); scn new Scanner(System.in) int x=scn.nextInt(); x scn.nextInt() scn.nextInt scn int n=scn.nextInt(); n scn.nextInt() scn.nextInt scn HashMap<Integer,Integer> map=new HashMap<> (); map new HashMap<> () int min=Integer.MAX_VALUE; min Integer.MAX_VALUE Integer Integer.MAX_VALUE int max=Integer.MIN_VALUE; max Integer.MIN_VALUE Integer Integer.MIN_VALUE int a[]= new int[n]; a new int[n] n for(int i=0; i<n; i++){
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            } int i=0; int i=0; i 0 i<n i n i++ i++ i {
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            } {
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            } a[i]=scn.nextInt() a[i] a i scn.nextInt() scn.nextInt scn map.put(a[i],1) map.put map a[i] a i 1 min=Math.min(min,a[i]) min Math.min(min,a[i]) Math.min Math min a[i] a i max=Math.max(max,a[i]) max Math.max(max,a[i]) Math.max Math max a[i] a i if(n==0){
                System.out.println(x);
            } else 
		    System.out.println(some(a,x,n,map,min,max)); n==0 n 0 {
                System.out.println(x);
            } System.out.println(x) System.out.println System.out System System.out x System.out.println(some(a,x,n,map,min,max)) System.out.println System.out System System.out some(a,x,n,map,min,max) some a x n map min max String[] args args public static int some(int a[],int x, int n,HashMap<Integer,Integer> map, int min, int max){
        // if(x<=min) return min-1;
        // if(x>=max) return max+1; 
        if(x<min){
            if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } 
        }
        if(x>max){
            if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            }
        }
        ArrayList<Integer> al=new ArrayList<> ();
        for(int i=min; i<=max; i++){
            if(!map.containsKey(i)){
                al.add(i);
            }
        }
        if(al.size()==0){
            if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            }
        }
        int mans=Integer.MAX_VALUE;
        int ans=0;
        Collections.sort(al);
        while(al.size()!=0){
            int p=al.get(0);
            int temp=Math.abs(x-p);
            if(temp<mans){
                mans=temp;
                ans=p;
            }     
            al.remove(0);
        }
        return ans;
	} some {
        // if(x<=min) return min-1;
        // if(x>=max) return max+1; 
        if(x<min){
            if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } 
        }
        if(x>max){
            if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            }
        }
        ArrayList<Integer> al=new ArrayList<> ();
        for(int i=min; i<=max; i++){
            if(!map.containsKey(i)){
                al.add(i);
            }
        }
        if(al.size()==0){
            if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            }
        }
        int mans=Integer.MAX_VALUE;
        int ans=0;
        Collections.sort(al);
        while(al.size()!=0){
            int p=al.get(0);
            int temp=Math.abs(x-p);
            if(temp<mans){
                mans=temp;
                ans=p;
            }     
            al.remove(0);
        }
        return ans;
	} if(x<min){
            if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } 
        } x<min x min {
            if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } 
        } if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } (x-1)<=min (x-1) x 1 min {
                return x-1;
            } return x-1; x-1 x 1 {
                return x+1;
            } return x+1; x+1 x 1 if(x>max){
            if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            }
        } x>max x max {
            if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            }
        } if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            } (x-1)>max (x-1) x 1 max {
                return x-1;
            } return x-1; x-1 x 1 {
                return x+1;
            } return x+1; x+1 x 1 ArrayList<Integer> al=new ArrayList<> (); al new ArrayList<> () for(int i=min; i<=max; i++){
            if(!map.containsKey(i)){
                al.add(i);
            }
        } int i=min; int i=min; i min i<=max i max i++ i++ i {
            if(!map.containsKey(i)){
                al.add(i);
            }
        } {
            if(!map.containsKey(i)){
                al.add(i);
            }
        } if(!map.containsKey(i)){
                al.add(i);
            } !map.containsKey(i) map.containsKey(i) map.containsKey map i {
                al.add(i);
            } al.add(i) al.add al i if(al.size()==0){
            if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            }
        } al.size()==0 al.size() al.size al 0 {
            if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            }
        } if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            } Math.abs((min-1)-x)>Math.abs((max+1)-x) Math.abs((min-1)-x) Math.abs Math (min-1)-x (min-1) min 1 x Math.abs((max+1)-x) Math.abs Math (max+1)-x (max+1) max 1 x {
                return max+1;
            } return max+1; max+1 max 1 {
                return min-1;
            } return min-1; min-1 min 1 int mans=Integer.MAX_VALUE; mans Integer.MAX_VALUE Integer Integer.MAX_VALUE int ans=0; ans 0 Collections.sort(al) Collections.sort Collections al while(al.size()!=0){
            int p=al.get(0);
            int temp=Math.abs(x-p);
            if(temp<mans){
                mans=temp;
                ans=p;
            }     
            al.remove(0);
        } al.size()!=0 al.size() al.size al 0 {
            int p=al.get(0);
            int temp=Math.abs(x-p);
            if(temp<mans){
                mans=temp;
                ans=p;
            }     
            al.remove(0);
        } int p=al.get(0); p al.get(0) al.get al 0 int temp=Math.abs(x-p); temp Math.abs(x-p) Math.abs Math x-p x p if(temp<mans){
                mans=temp;
                ans=p;
            } temp<mans temp mans {
                mans=temp;
                ans=p;
            } mans=temp mans temp ans=p ans p al.remove(0) al.remove al 0 return ans; ans int a[] a int x x int n n HashMap<Integer,Integer> map map int min min int max max
import java.util.*;
import java.lang.*;
import java.io.*;

class Main {
public static void main (String[] args) {
Scanner scn= new Scanner(System.in);
		
            int x=scn.nextInt();
            int n=scn.nextInt();
            HashMap<Integer,Integer> map=new HashMap<> ();
            int min=Integer.MAX_VALUE;
            int max=Integer.MIN_VALUE;
		    int a[]= new int[n];
		    for(int i=0; i<n; i++){
                a[i]=scn.nextInt();
                map.put(a[i],1);
                min=Math.min(min,a[i]);
                max=Math.max(max,a[i]);
            }
            if(n==0){
                System.out.println(x);
            } else 
		    System.out.println(some(a,x,n,map,min,max));
		
	}
	public static int some(int a[],int x, int n,HashMap<Integer,Integer> map, int min, int max){
        // if(x<=min) return min-1;
        // if(x>=max) return max+1; 
        if(x<min){
            if((x-1)<=min){
                return x-1;
            } else {
                return x+1;
            } 
        }
        if(x>max){
            if((x-1)>max){
                return x-1;
            } else {
                return x+1;
            }
        }
        ArrayList<Integer> al=new ArrayList<> ();
        for(int i=min; i<=max; i++){
            if(!map.containsKey(i)){
                al.add(i);
            }
        }
        if(al.size()==0){
            if(Math.abs((min-1)-x)>Math.abs((max+1)-x)){
                return max+1;
            } else {
                return min-1;
            }
        }
        int mans=Integer.MAX_VALUE;
        int ans=0;
        Collections.sort(al);
        while(al.size()!=0){
            int p=al.get(0);
            int temp=Math.abs(x-p);
            if(temp<mans){
                mans=temp;
                ans=p;
            }     
            al.remove(0);
        }
        return ans;
	}
}
