#pragma GCC optimize("Ofast", "unroll-loops") #include using namespace std; #define ll long long ll N; int K; vector A; map isNG; void input(void){ cin >> N >> K; A.resize(K); for (int i = 0; i < K; ++i){ cin >> A[i]; isNG[A[i]] = 1; } } bool NG_check1(void){ for (int i = 0; i < K; ++i){ if ( (A[i] >= 10 && isNG[A[i] + 5]) || (A[i] >= 11 && isNG[A[i] + 3]) || (A[i] >= 12 && isNG[A[i] + 1]) ) return true; } return false; } void small_simulate(void){ constexpr int R = 10; for (int i = R; i >= 0; --i){ if ( (isNG[i + 1] && isNG[i + 6]) || (isNG[i + 2] && isNG[i + 5]) || (isNG[i + 3] && isNG[i + 4]) ) isNG[i] = 1; } } bool NG_check2(void){ small_simulate(); return isNG[1]; } int main(void){ input(); if (NG_check1() || NG_check2()) cout << "No" << endl; else cout << "Yes" << endl; return 0; }