program main
  implicit none

  integer :: x, y, z, n, i, k
  integer,allocatable :: p(:)

  read(*,*) x, n

  if(n == 0) then
     write(*,*) x
     stop
  end if
  
  allocate(p(n))
  read(*,*) p


  call heapsort(p)

  do i = 1, n
     if(p(i) == x) then
        k = i
        exit
     else
        k = -1
     end if
  end do

  if(k == -1) then
     write(*,*) x
  else
     do i = 1, k-1
        if(p(k-i) /= x-i) then
           y = x-i
           exit
        else
           y = x - k
        end if
     end do
        
     do i = 1, n-k
        if(p(k+i) /= x+i) then
           z = x+i
           exit
        else
           z = x + (n - k + 1)
        end if
        

     end do

  end if
  
  
  if(abs(y-x) <= abs(z-x))then
     write(*,*) y
  else
     write(*,*) z
  end if

  stop
        

  contains
  subroutine heapsort(array)
  implicit none
  integer, intent(inout) :: array(:)
  
  integer :: i,k,j,l
  double precision :: t
  
  if(n <= 0)then
     write(6,*)"Error, at heapsort"; stop
  endif
  if(n == 1)return

  l=n/2+1
  k=n
  do while(k /= 1)
     if(l > 1)then
        l=l-1
        t=array(L)
     else
        t=array(k)
        array(k)=array(1)
        k=k-1
        if(k == 1) then
           array(1)=t
           exit
        endif
     endif
     i=l
     j=l+l
     do while(j <= k)
        if(j < k)then
           if(array(j).lt.array(j+1))j=j+1
        endif
        if (t < array(j))then
           array(i)=array(j)
           i=j
           j=j+j
        else
           j=k+1
        endif
     enddo
     array(i)=t
  enddo

  return
end subroutine heapsort

end program main
