#include <bits/stdc++.h>
using namespace std;
int main() {
  int nscroll;
  int hp;
  int reg;
  cin >> nscroll >> hp >> reg;
  vector<pair<pair<int, int>, int> > scroll;
  for (int(i) = 0; (i) < (nscroll); ++(i)) {
    int buf1, buf2;
    cin >> buf1 >> buf2;
    scroll.push_back(make_pair(make_pair(buf2, buf1), i + 1));
  }
  sort(scroll.begin(), scroll.end());
  reverse(scroll.begin(), scroll.end());
  vector<int> isused(nscroll, 0);
  vector<pair<int, int> > used;
  int dps = 0;
  int curhp = hp;
  for (int(i) = 0; (i) < (3000); ++(i)) {
    curhp -= dps;
    curhp += reg;
    curhp = min(hp, curhp);
    if (curhp <= 0) {
      printf("YES\n");
      printf("%d %d\n", i, ((int)used.size()));
      for (int(j) = 0; (j) < (((int)used.size())); ++(j))
        printf("%d %d\n", used[j].first, used[j].second);
      return 0;
    }
    for (int(j) = 0; (j) < (((int)scroll.size())); ++(j)) {
      if (isused[j]) continue;
      if (scroll[j].first.second * hp >= curhp * 100) {
        dps += scroll[j].first.first;
        used.push_back(make_pair(i, scroll[j].second));
        isused[j] = 1;
        break;
        ;
      }
    }
  }
  printf("NO\n");
  return 0;
}
