#include <bits/stdc++.h>
using namespace std;
const long double epsylon = 1e-9;
int n, reg, h;
struct ivo {
  ivo(int p_ = 0) {
    d = 1000;
    p = p_;
    idx = -1000;
  }
  int p;
  int d;
  int idx;
  bool operator<(const ivo& o) const {
    if (p != o.p) return p < o.p;
    if (d != o.d) return d > o.d;
    return idx < o.idx;
  }
};
vector<ivo> a;
int main() {
  cin >> n >> h >> reg;
  int mv = h;
  a.resize(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i].p >> a[i].d;
    a[i].p = (a[i].p * h) / 100;
    a[i].idx = i + 1;
  }
  a.resize(n);
  sort(a.begin(), a.end());
  int dec = -reg;
  vector<pair<int, int> > b;
  int mom = 0;
  while (true) {
    h = h - dec;
    h = min(h, mv);
    if (h <= 0) break;
    int bi = -1;
    for (int i = 0; i < a.size(); i++) {
      if (a[i].p >= h) {
        if (bi == -1 || a[i].d >= a[bi].d) {
          bi = i;
        }
      }
    }
    if (bi == -1) {
      if (dec <= 0) {
        cout << "NO\n";
        return 0;
      } else {
        mom++;
      }
    } else {
      b.push_back(make_pair(mom, a[bi].idx));
      dec += a[bi].d;
      a.erase(a.begin() + bi);
      mom++;
    }
  }
  cout << "YES\n";
  cout << mom << " " << b.size() << endl;
  for (int i = 0; i < b.size(); i++) {
    cout << b[i].first << " " << b[i].second << endl;
  }
  return 0;
}
