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