#include <bits/stdc++.h>
using namespace std;
int n, mx, reg, tmp;
vector<int> pw, dmg, mrk, anst, ansv;
map<int, int> used;
bool cmp(int i, int j) { return dmg[i] > dmg[j]; }
bool finds(int l) {
  for (int i = 0; i < n; i++)
    if (used[i] == 0) {
      if (l * 100 <= pw[mrk[i]] * mx) {
        used[i] = 1;
        tmp = i;
        return true;
      }
    }
  return false;
}
void cal() {
  int t = 0, l = mx, ttdmg = 0, flg;
  while (l > 0) {
    flg = finds(l);
    if (flg) {
      anst.push_back(t);
      ansv.push_back(mrk[tmp]);
      ttdmg += dmg[mrk[tmp]];
    } else {
      if (reg >= ttdmg) {
        puts("NO");
        return;
      }
    }
    l = l - ttdmg + reg;
    if (l > mx) l = mx;
    t++;
  }
  printf("YES\n%d %d\n", t, anst.size());
  for (int i = 0; i < anst.size(); i++) printf("%d %d\n", anst[i], ansv[i] + 1);
}
int main() {
  scanf("%d%d%d", &n, &mx, &reg);
  for (int a, b, i = 0; i < n; i++) {
    scanf("%d%d", &a, &b);
    pw.push_back(a);
    dmg.push_back(b);
    mrk.push_back(i);
  }
  sort(mrk.begin(), mrk.end(), cmp);
  cal();
}
