#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
****************************************************************/