import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Main {
	static  ArrayList<Pair>adj[];
	static PrintWriter out=new PrintWriter(System.out);
        static Integer[] b;
	public static void main(String[] args) throws Exception {
	Scanner sc=new Scanner(System.in);
	int h=sc.nextInt();
	
	int n=sc.nextInt();
	int a[]=new int[n];
	long sum=0;
	for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	}
	if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	}
	
out.flush();
	}

static long sum;	
	
	static void dfs(int u,int p,  int l, int r) {
		   

for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
}

 sum+= 1l*(r-l+1)*1l*(u + 1)*1l;
}

static class Scanner {
		StringTokenizer st;
		BufferedReader br;
 
		public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		}
 
		public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		}
 
		public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
 
		public String nextLine() throws IOException {
			return br.readLine();
		}
 
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
 
		public double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}
 
		public char nextChar() throws IOException {
			return next().charAt(0);
		}
 
		public Long nextLong() throws IOException {
			return Long.parseLong(next());
		}
 
		public boolean ready() throws IOException {
			return br.ready();
		}
 
		public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		}
	}	

	
	
	 static class Pair implements Comparable<Pair>{
		  int v;
		  int cost;
		  Pair(int a, int b){
			  v=a;
			  cost=b;
		  }
		public int compareTo(Pair p) {
			return (int) (p.cost-this.cost);
		 
				 
		}
	 }
} import java.io.BufferedReader; BufferedReader java.io import java.io.FileReader; FileReader java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.ArrayList; ArrayList java.util import java.util.LinkedList; LinkedList java.util import java.util.Queue; Queue java.util import java.util.StringTokenizer; StringTokenizer java.util public class Main {
	static  ArrayList<Pair>adj[];
	static PrintWriter out=new PrintWriter(System.out);
        static Integer[] b;
	public static void main(String[] args) throws Exception {
	Scanner sc=new Scanner(System.in);
	int h=sc.nextInt();
	
	int n=sc.nextInt();
	int a[]=new int[n];
	long sum=0;
	for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	}
	if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	}
	
out.flush();
	}

static long sum;	
	
	static void dfs(int u,int p,  int l, int r) {
		   

for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
}

 sum+= 1l*(r-l+1)*1l*(u + 1)*1l;
}

static class Scanner {
		StringTokenizer st;
		BufferedReader br;
 
		public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		}
 
		public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		}
 
		public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
 
		public String nextLine() throws IOException {
			return br.readLine();
		}
 
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
 
		public double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}
 
		public char nextChar() throws IOException {
			return next().charAt(0);
		}
 
		public Long nextLong() throws IOException {
			return Long.parseLong(next());
		}
 
		public boolean ready() throws IOException {
			return br.ready();
		}
 
		public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		}
	}	

	
	
	 static class Pair implements Comparable<Pair>{
		  int v;
		  int cost;
		  Pair(int a, int b){
			  v=a;
			  cost=b;
		  }
		public int compareTo(Pair p) {
			return (int) (p.cost-this.cost);
		 
				 
		}
	 }
} Main static  ArrayList<Pair>adj[]; adj static PrintWriter out=new PrintWriter(System.out); out new PrintWriter(System.out) static Integer[] b; b static long sum; sum public static void main(String[] args) throws Exception {
	Scanner sc=new Scanner(System.in);
	int h=sc.nextInt();
	
	int n=sc.nextInt();
	int a[]=new int[n];
	long sum=0;
	for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	}
	if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	}
	
out.flush();
	} main {
	Scanner sc=new Scanner(System.in);
	int h=sc.nextInt();
	
	int n=sc.nextInt();
	int a[]=new int[n];
	long sum=0;
	for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	}
	if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	}
	
out.flush();
	} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int h=sc.nextInt(); h sc.nextInt() sc.nextInt sc int n=sc.nextInt(); n sc.nextInt() sc.nextInt sc int a[]=new int[n]; a new int[n] n long sum=0; sum 0 for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	} int i = 0; int i = 0; i 0 i < a.length i a.length a a.length i++ i++ i {
		a[i]=sc.nextInt();
		sum+=a[i];
	} {
		a[i]=sc.nextInt();
		sum+=a[i];
	} a[i]=sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc sum+=a[i] sum a[i] a i if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	} sum>=h sum h {
		System.out.println("Yes");
	} System.out.println("Yes") System.out.println System.out System System.out "Yes" {
		System.out.println("No");
	} System.out.println("No") System.out.println System.out System System.out "No" out.flush() out.flush out String[] args args static void dfs(int u,int p,  int l, int r) {
		   

for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
}

 sum+= 1l*(r-l+1)*1l*(u + 1)*1l;
} dfs {
		   

for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
}

 sum+= 1l*(r-l+1)*1l*(u + 1)*1l;
} for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
} Pair v adj[u] adj u {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
} {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
} if(r<l) {
		  return;
	  } r<l r l {
		  return;
	  } return; if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 } p!=v.v&&v.cost<b[r] p!=v.v p v.v v v.v v.cost<b[r] v.cost v v.cost b[r] b r {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 } int cur=r; cur r while(l<=r&&v.cost<b[r])  	r--; l<=r&&v.cost<b[r] l<=r l r v.cost<b[r] v.cost v v.cost b[r] b r r-- r dfs(v.v,u,r+1,cur) dfs v.v v v.v u r+1 r 1 cur sum+= 1l*(r-l+1)*1l*(u + 1)*1l sum 1l*(r-l+1)*1l*(u + 1)*1l (u + 1) 1l 1l*(r-l+1)*1l*(u + 1)*1l 1l (r-l+1) r-l r l 1 1l (u + 1) u 1 1l int u u int p p int l l int r r static class Scanner {
		StringTokenizer st;
		BufferedReader br;
 
		public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		}
 
		public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		}
 
		public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
 
		public String nextLine() throws IOException {
			return br.readLine();
		}
 
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
 
		public double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}
 
		public char nextChar() throws IOException {
			return next().charAt(0);
		}
 
		public Long nextLong() throws IOException {
			return Long.parseLong(next());
		}
 
		public boolean ready() throws IOException {
			return br.ready();
		}
 
		public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		}
	} Scanner StringTokenizer st; st BufferedReader br; br public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		} Scanner {
			br = new BufferedReader(new InputStreamReader(system));
		} br = new BufferedReader(new InputStreamReader(system)) br new BufferedReader(new InputStreamReader(system)) InputStream system system public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		} Scanner {
			br = new BufferedReader(new FileReader(file));
		} br = new BufferedReader(new FileReader(file)) br new BufferedReader(new FileReader(file)) String file file public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		} next {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		} while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine()); st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st public String nextLine() throws IOException {
			return br.readLine();
		} nextLine {
			return br.readLine();
		} return br.readLine(); br.readLine() br.readLine br public int nextInt() throws IOException {
			return Integer.parseInt(next());
		} nextInt {
			return Integer.parseInt(next());
		} return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next public double nextDouble() throws IOException {
			return Double.parseDouble(next());
		} nextDouble {
			return Double.parseDouble(next());
		} return Double.parseDouble(next()); Double.parseDouble(next()) Double.parseDouble Double next() next public char nextChar() throws IOException {
			return next().charAt(0);
		} nextChar {
			return next().charAt(0);
		} return next().charAt(0); next().charAt(0) next().charAt next() next 0 public Long nextLong() throws IOException {
			return Long.parseLong(next());
		} nextLong {
			return Long.parseLong(next());
		} return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next public boolean ready() throws IOException {
			return br.ready();
		} ready {
			return br.ready();
		} return br.ready(); br.ready() br.ready br public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		} waitForInput {
			Thread.sleep(3000);
		} Thread.sleep(3000) Thread.sleep Thread 3000 static class Pair implements Comparable<Pair>{
		  int v;
		  int cost;
		  Pair(int a, int b){
			  v=a;
			  cost=b;
		  }
		public int compareTo(Pair p) {
			return (int) (p.cost-this.cost);
		 
				 
		}
	 } Pair int v; v int cost; cost Pair(int a, int b){
			  v=a;
			  cost=b;
		  } Pair {
			  v=a;
			  cost=b;
		  } v=a v a cost=b cost b int a a int b b public int compareTo(Pair p) {
			return (int) (p.cost-this.cost);
		 
				 
		} compareTo {
			return (int) (p.cost-this.cost);
		 
				 
		} return (int) (p.cost-this.cost); (int) (p.cost-this.cost) p.cost p p.cost this.cost this this.cost Pair p p Comparable public class Main {
	static  ArrayList<Pair>adj[];
	static PrintWriter out=new PrintWriter(System.out);
        static Integer[] b;
	public static void main(String[] args) throws Exception {
	Scanner sc=new Scanner(System.in);
	int h=sc.nextInt();
	
	int n=sc.nextInt();
	int a[]=new int[n];
	long sum=0;
	for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	}
	if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	}
	
out.flush();
	}

static long sum;	
	
	static void dfs(int u,int p,  int l, int r) {
		   

for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
}

 sum+= 1l*(r-l+1)*1l*(u + 1)*1l;
}

static class Scanner {
		StringTokenizer st;
		BufferedReader br;
 
		public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		}
 
		public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		}
 
		public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
 
		public String nextLine() throws IOException {
			return br.readLine();
		}
 
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
 
		public double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}
 
		public char nextChar() throws IOException {
			return next().charAt(0);
		}
 
		public Long nextLong() throws IOException {
			return Long.parseLong(next());
		}
 
		public boolean ready() throws IOException {
			return br.ready();
		}
 
		public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		}
	}	

	
	
	 static class Pair implements Comparable<Pair>{
		  int v;
		  int cost;
		  Pair(int a, int b){
			  v=a;
			  cost=b;
		  }
		public int compareTo(Pair p) {
			return (int) (p.cost-this.cost);
		 
				 
		}
	 }
} public class Main {
	static  ArrayList<Pair>adj[];
	static PrintWriter out=new PrintWriter(System.out);
        static Integer[] b;
	public static void main(String[] args) throws Exception {
	Scanner sc=new Scanner(System.in);
	int h=sc.nextInt();
	
	int n=sc.nextInt();
	int a[]=new int[n];
	long sum=0;
	for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	}
	if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	}
	
out.flush();
	}

static long sum;	
	
	static void dfs(int u,int p,  int l, int r) {
		   

for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
}

 sum+= 1l*(r-l+1)*1l*(u + 1)*1l;
}

static class Scanner {
		StringTokenizer st;
		BufferedReader br;
 
		public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		}
 
		public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		}
 
		public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
 
		public String nextLine() throws IOException {
			return br.readLine();
		}
 
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
 
		public double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}
 
		public char nextChar() throws IOException {
			return next().charAt(0);
		}
 
		public Long nextLong() throws IOException {
			return Long.parseLong(next());
		}
 
		public boolean ready() throws IOException {
			return br.ready();
		}
 
		public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		}
	}	

	
	
	 static class Pair implements Comparable<Pair>{
		  int v;
		  int cost;
		  Pair(int a, int b){
			  v=a;
			  cost=b;
		  }
		public int compareTo(Pair p) {
			return (int) (p.cost-this.cost);
		 
				 
		}
	 }
} Main
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Main {
	static  ArrayList<Pair>adj[];
	static PrintWriter out=new PrintWriter(System.out);
        static Integer[] b;
	public static void main(String[] args) throws Exception {
	Scanner sc=new Scanner(System.in);
	int h=sc.nextInt();
	
	int n=sc.nextInt();
	int a[]=new int[n];
	long sum=0;
	for (int i = 0; i < a.length; i++) {
		a[i]=sc.nextInt();
		sum+=a[i];
	}
	if(sum>=h) {
		System.out.println("Yes");
	}
	else {
		System.out.println("No");
	}
	
out.flush();
	}

static long sum;	
	
	static void dfs(int u,int p,  int l, int r) {
		   

for(Pair v:adj[u]) {
	  if(r<l) {
		  return;
	  }
 if(p!=v.v&&v.cost<b[r]) {
	 int cur=r;
 while(l<=r&&v.cost<b[r])  	r--;
 
dfs(v.v,u,r+1,cur);
 }
}

 sum+= 1l*(r-l+1)*1l*(u + 1)*1l;
}

static class Scanner {
		StringTokenizer st;
		BufferedReader br;
 
		public Scanner(InputStream system) {
			br = new BufferedReader(new InputStreamReader(system));
		}
 
		public Scanner(String file) throws Exception {
			br = new BufferedReader(new FileReader(file));
		}
 
		public String next() throws IOException {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}
 
		public String nextLine() throws IOException {
			return br.readLine();
		}
 
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
 
		public double nextDouble() throws IOException {
			return Double.parseDouble(next());
		}
 
		public char nextChar() throws IOException {
			return next().charAt(0);
		}
 
		public Long nextLong() throws IOException {
			return Long.parseLong(next());
		}
 
		public boolean ready() throws IOException {
			return br.ready();
		}
 
		public void waitForInput() throws InterruptedException {
			Thread.sleep(3000);
		}
	}	

	
	
	 static class Pair implements Comparable<Pair>{
		  int v;
		  int cost;
		  Pair(int a, int b){
			  v=a;
			  cost=b;
		  }
		public int compareTo(Pair p) {
			return (int) (p.cost-this.cost);
		 
				 
		}
	 }
}