public class Main{ // 最小邮票数
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
int m = scan.nextInt();
int n = scan.nextInt();
int array[] = new int[n];
for(int i = 0; i < n ; i++)
array[i] = scan.nextInt();
System.out.println(getMin(m,n,array));
}
}
public static int getMin(int m , int n , int array[]){
int inf = 10000;
int dp[] = new int[m+1];
dp[0] = 0;
for(int i = 1; i < m+1; i++)
dp[i] = inf;
for(int i = 0; i < n; i++)
for(int j = m; j >= array[i];j--){
if(dp[j - array[i]] != inf)
dp[j] = Math.min(dp[j], dp[j-array[i]]+1);
}
return dp[m]!=inf ? dp[m] : 0;
}
}
public class Main{ // 两船载货
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
int n = scan.nextInt();
int c1 = scan.nextInt();
int c2 = scan.nextInt();
int array[] = new int[n];
int sum = 0;
for(int i = 0; i < n ; i++){
array[i] = scan.nextInt();
sum += array[i];
}
if(sum > c1 + c2){
System.out.println("NO");
continue;
}
if(c1 > c2){
int t = c1;
c1 = c2;
c2 = t;
}
int dp[] = new int[c1+1];
for(int i = 0 ; i < n; i++)
for(int j = c1; j >= array[i]; j--){
dp[j] = Math.max(dp[j], dp[j - array[i]] + array[i]);
}
if(dp[c1] + c2 > sum)
System.out.println("YES");
else
System.out.println("No");
}
}
}