#include<bits/stdc++.h>
using namespace std;
int s,n,w[51],f[51];
bool flag;
void dfs(int i,int step){
f[step] = w[i];
int sum = 0;
for(int k=1;k<=step;k++){
sum = sum + f[k];
}
if(sum==s){
flag = 1;
return;
}
for(int k=i+1;k<=n;k++){
if(flag==0 && sum<s) dfs(k,step+1);
}
}
int main(){
cin>>s>>n;
for(int i=1;i<=n;i++){
cin>>w[i];
}
for(int i=1;i<=n;i++){
memset(f,0,sizeof(f));
dfs(i,1);
if(flag==1) break;
}
if(flag==1) cout<<"YES";
else cout<<"NO";
return 0;
}
/**************************************************************
Problem: 1693
User: admin
Language: C++
Result: Accepted
Time:10 ms
Memory:2072 kb
****************************************************************/