#include <bits/stdc++.h>
using namespace std;
int oo = (int)1e9;
int pw[1009], dmg[1009], vis[1009], tim[1009];
int mx, reg;
int n, res = 0;
int org;
int getbest() {
  int ret = -1, idx;
  for (int i = 0; i < n; ++i) {
    if (!vis[i] && pw[i] * org >= mx * 100 && ret < dmg[i])
      ret = dmg[i], idx = i;
  }
  if (ret != -1) vis[idx] = 1, tim[idx] = res;
  return ret;
}
int main() {
  scanf("%d%d%d", &n, &mx, &reg);
  org = mx;
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", pw + i, dmg + i);
  }
  memset(tim, -1, sizeof tim);
  memset(vis, 0, sizeof vis);
  int d = getbest();
  int cnt = 1, flg = 0;
  while (1) {
    if (cnt >= 2000 && mx == org) {
      flg = 1;
      break;
    }
    cnt++;
    res++;
    mx -= d;
    mx += reg;
    if (mx <= 0) break;
    mx = min(mx, org);
    int b = getbest();
    if (b != -1) d += b;
  }
  if (flg) {
    cout << "NO\n";
    return 0;
  }
  vector<pair<int, int> > vp;
  for (int i = 0; i < n; ++i) {
    if (tim[i] != -1) vp.push_back(make_pair(tim[i], i + 1));
  }
  cout << "YES\n";
  cout << res << " " << vp.size() << endl;
  sort(vp.begin(), vp.end());
  for (int i = 0; i < vp.size(); ++i) {
    cout << vp[i].first << " " << vp[i].second << endl;
  }
  return 0;
}
