
/*X に最も近いもの、つまり X との差の絶対値が最小のものを求めてください。そのような整数が複数存在する場合は、そのうち最も小さいものを答えてください*/
#include<stdio.h>
int main(void) {

	int x = 0;
	int N = 0;
	int v[100] = { 0 };
	int ans = 0;
	int i = 0;
	int sa = 0;

	/*xを入力*/
	scanf("%d", &x);
	/*個数を入力*/
	scanf("%d", &N);

	int j = 0;


	for (i = 0; i < N; i++) {
		// printf("[%d]\n", i);
		scanf("%d", &v[i]);
	}



	/*優先順位が高い順に
	  x = 10
	  10, 9, 11, 8, 12, 7, 13, 6, 14, 5を表示。
	  x = 50 を入力すると
	  50, 49, 51, 48, 52, 47, 53, 46, 52, 45 */

	int a = x - 1;
	int b = x + 1;

	// x が配列v に含まれているかチェック
	// 含まれてなければ、x 自身が正答。printf して終了

	int count = 0;

	for (i = 0; i < N; i++) {
		if (v[i] != x) {
			count++;
		}
	}

	if (count == N) {
		printf("%d", x);
		return 0;
	}


	/*整数列にxがあるとき*/

	int count_2 = 0;
	int count_3 = 0;

	while (a >= 0) {
		// a が配列v に含まれているかチェック
		// 含まれてなければ、a が正答。printf して終了

		count_2 = 0;

		for (i = 0; i < N; i++) {
			if (v[i] != a) {
				count_2++;
			}
		}

		if (count_2 == N) {
			printf("%d\n", a);
			return 0;
		}

		a--;

		// b が配列v に含まれているかチェック
		// 含まれてなければ、a が正答。printf して終了

		count_3 = 0;

		for (i = 0; i < N; i++) {
			if (v[i] != b) {
				count_3++;
			}
		}

		if (count_3 == N) {
			printf("%d\n", b);
			return 0;
		}

		b++;
	}

	return 0;
}

