#include <bits/stdc++.h>
using namespace std;
struct node {
  int a, b, c;
} p[1010], ans[1010];
bool cmp(node x, node y) {
  if (x.a > y.a) return 1;
  if (x.a == y.a) {
    if (x.b > y.b) return 1;
    if (x.b == y.b) return x.c < y.c;
    if (x.b < y.b) return 0;
  }
  if (x.a < y.a) return 0;
}
int main() {
  int n, ma, re, i, j, time, tot = 0, oo;
  bool mark[1010];
  while (scanf("%d%d%d", &n, &ma, &re) != EOF) {
    time = 0;
    tot = 0;
    oo = 0;
    memset(mark, 0, sizeof(mark));
    int xue, shanghai = 0, nums = 0;
    xue = ma;
    for (i = 0; i < n; i++) {
      scanf("%d%d", &p[i].a, &p[i].b);
      p[i].c = i + 1;
    }
    sort(p, p + n, cmp);
    while (1) {
      int mx = 0, mm = -1;
      for (i = 0; i < n; i++) {
        if (nums >= n) break;
        if (mark[i]) continue;
        if (p[i].a * 1.0 < xue * 1.0 * 100 / ma) break;
        if (mx < p[i].b) {
          mx = p[i].b;
          mm = i;
        }
      }
      if (mm == -1) {
        if (shanghai <= re) {
          oo = 0;
          printf("NO\n");
          break;
        }
      } else {
        nums++;
        ans[nums].a = time;
        ans[nums].b = p[mm].c;
        mark[mm] = 1;
        shanghai += mx;
      }
      xue = xue - shanghai;
      xue = xue + re;
      if (xue > ma) xue = ma;
      time++;
      if (xue <= 0) {
        oo = 1;
        printf("YES\n");
        break;
      }
    }
    if (oo) {
      printf("%d %d\n", time, nums);
      for (i = 1; i <= nums; i++) printf("%d %d\n", ans[i].a, ans[i].b);
    }
  }
}
