#include <bits/stdc++.h>
using namespace std;
bool vis[1001];
struct node {
  int pow, att;
} d[1001];
int n, turn, HP, reg, ATT, id, maxn, num, q[1001][2];
int main() {
  scanf("%d%d%d", &n, &maxn, &reg);
  HP = maxn;
  for (register int i = 1; i <= n; i = -~i) scanf("%d%d", &d[i].pow, &d[i].att);
  while (HP > 0) {
    id = 0;
    HP -= ATT;
    HP = min(maxn, HP + reg);
    if (ATT <= reg) {
      bool flag = false;
      for (register int i = 1; i <= n; i = -~i)
        if (!vis[i] && d[i].pow * maxn >= HP * 100) {
          flag = true;
          break;
        }
      if (!flag) return printf("NO"), 0;
    }
    for (register int i = 1; i <= n; i = -~i)
      if (!vis[i])
        if (maxn * d[i].pow >= HP * 100)
          if (!id || d[i].att > d[id].att) id = i;
    if (id && HP > 0) {
      ATT += d[id].att, vis[id] = true;
      num = -~num;
      q[num][0] = turn, q[num][1] = id;
    }
    turn = -~turn;
  }
  printf("YES\n%d %d\n", turn - 1, num);
  for (register int i = 1; i <= num; i = -~i)
    printf("%d %d\n", q[i][0], q[i][1]);
  return 0;
}
