#include int card[10000]; int used[10000] = {0}; int n, k; int max = 0; void search(int num, int cnt) { int i; int z_flag = 0; for(i = 0; i < k; i++) { if(!used[i] && (card[num] + 1 == card[i] || card[i] == 0)) { used[i] = 1; if(card[i] == 0) { card[i] = card[num] + 1; z_flag = 1; } search(i, cnt + 1); if(z_flag) { card[i] = 0; z_flag = 0; } used[i] = 0; } if(cnt > max) max = cnt; } return; } int main(void) { int i; scanf("%d%d", &n, &k); for(i = 0; i < k; i++) { scanf("%d", &card[i]); } for(i = 0; i < k; i++) { used[i] = 1; search(i, 1); used[i] = 0; } printf("%d\n", max); return 0; }