#include using namespace std; #define ALL(x) begin(x),end(x) #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b ostream &operator<<(ostream &os,const vector&v){ for(int i=0;i<(int)v.size();i++) os< istream &operator>>(istream &is,vector&v){ for(T &x:v)is>>x; return is; } ll UNKO=10000000000000ll; signed main(){ ll n,k;cin>>n>>k; vector a(k); cin>>a; rep(i,k-6){ bool f=true; for(int j=0;j<=6;j++){ if(a[j]-a[i]!=j) f=false; } if(!f){ cout<<"No"< st; rep(i,k) st.insert(a[i]); map check; rep(i,k) check[a[i]]=false; function dfs=[&](ll m){ if(m>=n) return true; if(check.count(m)) return check[m]; ll mi=LINF; rep(i,k){ if(a[i]=UNKO) return check[m]=true; for(int x=1;x<=6;x++){ if(!dfs(m+x) and !dfs(m+7-x)) return check[m]=false; } return check[m]=true; }; cout<<(dfs(1)?"Yes":"No")<