import java.io.*;
import java.util.*;

public class Main {
    static final String YES = "Yes";
    static final String NO = "No";

    public static void main(final String[] args) throws Exception {
        final Scanner sc = new Scanner(System.in);
        long H;
        H = sc.nextLong();
        long N;
        N = sc.nextLong();
        List<Long> A = new ArrayList<>();
        for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        }

        final Solver solver = new Solver();
        solver.solve(H, N, A);
    }
}

class Solver {
    public void solve(long H, long N, List<Long> A) {
        A.sort(Collections.reverseOrder());

        long life = H;
        for (int i = 0; i < N; i++) {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
}
 import java.io.*; io.* java import java.util.*; util.* java public class Main {
    static final String YES = "Yes";
    static final String NO = "No";

    public static void main(final String[] args) throws Exception {
        final Scanner sc = new Scanner(System.in);
        long H;
        H = sc.nextLong();
        long N;
        N = sc.nextLong();
        List<Long> A = new ArrayList<>();
        for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        }

        final Solver solver = new Solver();
        solver.solve(H, N, A);
    }
} Main static final String YES = "Yes"; YES "Yes" static final String NO = "No"; NO "No" public static void main(final String[] args) throws Exception {
        final Scanner sc = new Scanner(System.in);
        long H;
        H = sc.nextLong();
        long N;
        N = sc.nextLong();
        List<Long> A = new ArrayList<>();
        for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        }

        final Solver solver = new Solver();
        solver.solve(H, N, A);
    } main {
        final Scanner sc = new Scanner(System.in);
        long H;
        H = sc.nextLong();
        long N;
        N = sc.nextLong();
        List<Long> A = new ArrayList<>();
        for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        }

        final Solver solver = new Solver();
        solver.solve(H, N, A);
    } final Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long H; H H = sc.nextLong() H sc.nextLong() sc.nextLong sc long N; N N = sc.nextLong() N sc.nextLong() sc.nextLong sc List<Long> A = new ArrayList<>(); A new ArrayList<>() for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        } int i = 0 ; int i = 0 ; i 0 i < N i N i++ i++ i {
                A.add(sc.nextLong());
        } {
                A.add(sc.nextLong());
        } A.add(sc.nextLong()) A.add A sc.nextLong() sc.nextLong sc final Solver solver = new Solver(); solver new Solver() solver.solve(H, N, A) solver.solve solver H N A final String[] args args class Solver {
    public void solve(long H, long N, List<Long> A) {
        A.sort(Collections.reverseOrder());

        long life = H;
        for (int i = 0; i < N; i++) {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
} Solver public void solve(long H, long N, List<Long> A) {
        A.sort(Collections.reverseOrder());

        long life = H;
        for (int i = 0; i < N; i++) {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    } solve {
        A.sort(Collections.reverseOrder());

        long life = H;
        for (int i = 0; i < N; i++) {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    } A.sort(Collections.reverseOrder()) A.sort A Collections.reverseOrder() Collections.reverseOrder Collections long life = H; life H for (int i = 0; i < N; i++) {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        } {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        } H -= A.get(i) H A.get(i) A.get A i if (H <= 0) {
                System.out.println("Yes");
                return;
            } H <= 0 H 0 {
                System.out.println("Yes");
                return;
            } System.out.println("Yes") System.out.println System.out System System.out "Yes" return; System.out.println("No") System.out.println System.out System System.out "No" long H H long N N List<Long> A A public class Main {
    static final String YES = "Yes";
    static final String NO = "No";

    public static void main(final String[] args) throws Exception {
        final Scanner sc = new Scanner(System.in);
        long H;
        H = sc.nextLong();
        long N;
        N = sc.nextLong();
        List<Long> A = new ArrayList<>();
        for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        }

        final Solver solver = new Solver();
        solver.solve(H, N, A);
    }
} public class Main {
    static final String YES = "Yes";
    static final String NO = "No";

    public static void main(final String[] args) throws Exception {
        final Scanner sc = new Scanner(System.in);
        long H;
        H = sc.nextLong();
        long N;
        N = sc.nextLong();
        List<Long> A = new ArrayList<>();
        for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        }

        final Solver solver = new Solver();
        solver.solve(H, N, A);
    }
} Main
import java.io.*;
import java.util.*;

public class Main {
    static final String YES = "Yes";
    static final String NO = "No";

    public static void main(final String[] args) throws Exception {
        final Scanner sc = new Scanner(System.in);
        long H;
        H = sc.nextLong();
        long N;
        N = sc.nextLong();
        List<Long> A = new ArrayList<>();
        for(int i = 0 ; i < N ; i++){
                A.add(sc.nextLong());
        }

        final Solver solver = new Solver();
        solver.solve(H, N, A);
    }
}

class Solver {
    public void solve(long H, long N, List<Long> A) {
        A.sort(Collections.reverseOrder());

        long life = H;
        for (int i = 0; i < N; i++) {
            H -= A.get(i);
            if (H <= 0) {
                System.out.println("Yes");
                return;
            }
        }
        System.out.println("No");
    }
}

