#include <bits/stdc++.h>
using namespace std;
int n, hp, reg, wz = 0;
int chp = 0;
int per[10005], dmg[10005];
int sum = 0, tim = 0, xb = 0;
bool ff = 1;
bool vis[10005];
struct node {
  int t, w;
} rec[10005];
bool cmp(node x, node y) { return x.t < y.t; }
void ex() {
  while (chp > 0) {
    int hrt = 0;
    for (int i = 1; i <= n; i++) {
      if (((chp * 100.0 / hp) <= per[i]) && (!vis[i]) && dmg[i] > hrt) {
        hrt = dmg[i];
        wz = i;
      }
    }
    if (hrt != 0) {
      vis[wz] = 1;
      sum += hrt;
      rec[++xb].w = wz;
      rec[xb].t = tim;
    }
    chp -= sum;
    chp += reg;
    if (chp > hp) chp = hp;
    if (chp == hp) {
      int tot = 0;
      for (int k = 1; k <= n; k++) {
        if ((per[k] == 100) && (!vis[k])) break;
        tot++;
      }
      if (tot == n) {
        ff = 0;
        return;
      }
    }
    tim++;
  }
}
int main() {
  scanf("%d%d%d", &n, &hp, &reg);
  bool f = 1;
  for (int i = 1; i <= n; i++) scanf("%d%d", &per[i], &dmg[i]);
  chp = hp;
  ex();
  if (!ff) {
    printf("NO");
    return 0;
  }
  printf("YES\n%d %d\n", tim, xb);
  sort(rec + 1, rec + xb + 1, cmp);
  for (int i = 1; i <= xb; i++) {
    printf("%d %d\n", rec[i].t, rec[i].w);
  }
  return 0;
}
