#include<bits/stdc++.h> using namespace std; int s,n,a[60]; int dp[51][32768]; // 1 2 3 4 5 6 7 8 //1 1 1 1 1 1 1 1 1 //2 1 1 3 4 //3 //4 //5 int main(){ scanf("%d%d",&s,&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++){ for(int j=1;j<=s;j++){ if(j>=a[i]) dp[i][j]=max(dp[i-1][j],a[i]+dp[i-1][j-a[i]]); else dp[i][j]=dp[i-1][j]; } } if(dp[n][s]==s) printf("YES"); else printf("NO"); return 0; } /************************************************************** Problem: 1693 User: lsl Language: C++ Result: Accepted Time:9 ms Memory:8604 kb ****************************************************************/