#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1010;
const int INF = 0x3f3f3f3f;
struct Node {
  int per, dam, ord;
} node[MAXN];
struct Ans {
  int sec, ord;
} ans[MAXN];
bool vis[MAXN];
int main() {
  int n, max, reg;
  cin >> n >> max >> reg;
  for (int i = 1; i <= n; i++) {
    cin >> node[i].per >> node[i].dam;
    node[i].ord = i;
    vis[i] = false;
  }
  int t = -1, sum = 0, cnt = 0, now = max;
  bool flag = true;
  while (1) {
    t++;
    now = min(now - sum + reg, max);
    if (now <= 0) break;
    int temp = -1, ord;
    for (int i = 1; i <= n; i++) {
      if (!vis[i]) {
        if (now * 100 <= max * node[i].per) {
          if (temp < node[i].dam) {
            temp = node[i].dam;
            ord = node[i].ord;
          }
        }
      }
    }
    if (temp == -1 && sum <= reg) {
      cout << "NO\n";
      flag = false;
      break;
    }
    if (temp != -1) {
      vis[ord] = true;
      ans[cnt].sec = t;
      ans[cnt++].ord = ord;
      sum += node[ord].dam;
    }
  }
  if (flag) {
    cout << "YES\n" << t << " " << cnt << endl;
    for (int i = 0; i < cnt; i++)
      cout << ans[i].sec << " " << ans[i].ord << endl;
  }
  return 0;
}
