#include <bits/stdc++.h>
using namespace std;
typedef struct Node {
  int xi;
  int yi;
};
int main() {
  int s, n;
  scanf("%d%d", &s, &n);
  struct Node Q[n];
  int i;
  for (i = 0; i < n; i++) {
    scanf("%d", &Q[i].xi);
    scanf("%d", &Q[i].yi);
  }
  for (i = 0; i < n; i++) {
    for (int j = 0; j < n - 1; j++) {
      if (Q[j].xi > Q[j + 1].xi) {
        int t_xi, t_yi;
        t_xi = Q[j].xi;
        t_yi = Q[j].yi;
        Q[j].xi = Q[j + 1].xi;
        Q[j].yi = Q[j + 1].yi;
        Q[j + 1].xi = t_xi;
        Q[j + 1].yi = t_yi;
      }
    }
  }
  for (i = 0; i < n; i++) {
    if (Q[i].xi < s) {
      s += Q[i].yi;
    } else
      break;
  }
  if (i == n) {
    printf("YES");
  } else
    printf("NO");
}
