#include using namespace std; using lint = long long; constexpr lint inf = 1LL << 60; constexpr lint mod = 1000000007; int main() { cin.tie(nullptr); ios::sync_with_stdio(false); lint n, k; cin >> n >> k; vector a(k); priority_queue pq; for (int i = 0; i < k; ++i) { cin >> a[i]; pq.push(a[i]); } map mp; while (!pq.empty()) { lint idx = pq.top(); pq.pop(); if (idx <= 0) break; mp[idx] = true; bool ok = false; for (lint j = idx + 1; j <= idx + 6; ++j) { if (!mp[j]) ok = true; } if (!ok) { cout << "No" << "\n"; return 0; } if (mp[idx + 5]) { pq.push(idx - 1); } if (mp[idx + 3]) { pq.push(idx - 2); } if (mp[idx + 1]) { pq.push(idx - 3); } } if (mp[1]) { cout << "No" << "\n"; } else { cout << "Yes" << "\n"; } return 0; }