#include <bits/stdc++.h>
using namespace std;
struct spell {
  int num, dmg, pow;
  spell(int num, int pow, int dmg) : num(num), pow(pow), dmg(dmg) { ; }
};
bool operator<(const spell &s, const spell &t) {
  return (s.pow != t.pow) ? s.pow > t.pow : s.dmg < t.dmg;
}
vector<spell> sp;
int main() {
  int i, j, k, n;
  int bmax, breg;
  cin >> n >> bmax >> breg;
  for (i = 0; i < n; ++i) {
    cin >> j >> k;
    sp.push_back(spell(i + 1, j, k));
  }
  sort(sp.begin(), sp.end());
  int sec = 0, prevp = bmax + 1, bhp = bmax, edmg = 0, kl = 0, pk = -1;
  vector<bool> used(n, false);
  vector<pair<int, int> > ans;
  while (1) {
    bhp -= edmg;
    bhp += breg;
    bhp = min(bhp, bmax);
    if (bhp >= prevp && pk == kl) {
      cout << "NO" << endl;
      return 0;
    }
    if (bhp <= 0) {
      cout << "YES" << endl;
      cout << sec << " " << ans.size() << endl;
      for (i = 0; i < ans.size(); ++i) {
        cout << ans[i].first << " " << ans[i].second << endl;
      }
      return 0;
    }
    pk = kl;
    int bsp = 0, bdm = 0, bb = 0;
    for (i = 0; i < n; ++i) {
      if (sp[i].pow * bmax < bhp * 100) break;
      if (used[i] == false && sp[i].dmg > bdm) {
        bdm = sp[i].dmg;
        bsp = sp[i].num;
        bb = i;
      }
    }
    if (!(bb == 0 && bdm == 0)) {
      used[bb] = true;
      edmg += bdm;
      ans.push_back(make_pair(sec, bsp));
      kl++;
    }
    sec++;
    prevp = bhp;
  }
}
