#include <bits/stdc++.h>
using namespace std;
struct scroll {
  int n, p, d;
};
bool operator<(scroll a, scroll b) { return a.d > b.d; }
int main(int argc, char* argv[]) {
  int n, m, r;
  cin >> n >> m >> r;
  vector<scroll> scrolls;
  int k = 0;
  for (int i = 0; i < n; ++i) {
    int p, d;
    cin >> p >> d;
    scrolls.push_back((scroll){i + 1, p, d});
    if (p == 100) k += d;
  }
  if (k > r) {
    cout << "YES" << endl;
    sort(scrolls.begin(), scrolls.end());
    int c = m, d = 0, t = 0, f = 0;
    vector<pair<int, int> > a;
    while (true) {
      vector<scroll>::iterator s = scrolls.begin();
      while ((s->p < double(c) / m * 100) && (s != scrolls.end())) s++;
      if (s != scrolls.end()) {
        a.push_back(pair<int, int>(t, s->n));
        d += s->d;
        scrolls.erase(s);
        f++;
      }
      c -= d;
      c = min(c + r, m);
      t++;
      if (c <= 0) break;
    }
    cout << t << " " << f << endl;
    for (vector<pair<int, int> >::iterator i = a.begin(); i != a.end(); ++i)
      cout << i->first << " " << i->second << endl;
  } else
    cout << "NO" << endl;
  return 0;
}
