#include <bits/stdc++.h>
using namespace std;
struct Node {
  int pre;
  double ne;
  int dmg;
  bool used;
} node[2000];
int n;
int hp, reg;
int nowt;
int ld;
int used[2000][2];
int main() {
  cin >> n >> hp >> reg;
  Node a;
  int maxd = 0;
  int j;
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    cin >> a.pre >> a.dmg;
    a.ne = ((double)hp) * a.pre / 100.0;
    a.used = 0;
    node[i] = a;
    if (a.pre == 100) {
      if (a.dmg > maxd) {
        maxd = a.dmg;
        j = i;
      }
    }
  }
  if (maxd == 0) {
    cout << "NO" << endl;
    return 0;
  }
  node[j].used = 1;
  used[cnt][0] = 0;
  used[cnt][1] = j;
  cnt++;
  ld = node[j].dmg;
  nowt = 0;
  int hhp = hp;
  while (1) {
    if (hhp <= 0) break;
    nowt++;
    hhp -= ld;
    hhp = min(hp, hhp + reg);
    if (hhp <= 0) break;
    maxd = 0;
    j = 0;
    for (int i = 1; i <= n; i++) {
      if (node[i].used == 1) continue;
      if (node[i].ne >= hhp) {
        if (node[i].dmg > maxd) {
          maxd = node[i].dmg;
          j = i;
        }
      }
    }
    if (maxd == 0 && hhp == hp) break;
    if (maxd == 0) continue;
    node[j].used = 1;
    ld += maxd;
    used[cnt][0] = nowt;
    used[cnt][1] = j;
    cnt++;
  }
  if (hhp > 0) {
    cout << "NO" << endl;
  } else {
    cout << "YES" << endl;
    cout << nowt << " " << cnt << endl;
    for (int i = 0; i < cnt; i++) {
      cout << used[i][0] << " " << used[i][1] << endl;
    }
  }
  return 0;
}
