#include <bits/stdc++.h>
using namespace std;
int n, r, m;
struct Node {
  int a, b, flag, id;
} node[1100];
int cmp(Node p, Node q) { return p.b > q.b; }
int main() {
  cin >> n >> m >> r;
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &node[i].a, &node[i].b);
    node[i].id = i;
  }
  vector<int> ans;
  vector<int> tt;
  int s = 0;
  stable_sort(node + 1, node + n + 1, cmp);
  for (int i = 1; i <= n; i++) {
    if (node[i].a == 100) {
      s = node[i].b;
      node[i].flag = 1;
      ans.push_back(node[i].id);
      tt.push_back(0);
      break;
    }
  }
  int i;
  int mm = m;
  for (i = 1;; i++) {
    m -= s;
    m += r;
    if (m > mm) m = mm;
    if (m <= 0) {
      break;
    }
    int ff = 0;
    int flag = 0;
    int p = ceil((double)(m + 0.0) * 100 / (mm + 0.0));
    for (int j = 1; j <= n; j++) {
      if (!node[j].flag && p <= node[j].a) {
        s += node[j].b;
        node[j].flag = 1;
        ans.push_back(node[j].id);
        tt.push_back(i);
        flag = 1;
        break;
      }
    }
    if (!flag && s <= r) {
      printf("NO");
      return 0;
    }
  }
  printf("YES\n%d %d\n", i, ans.size());
  for (int i = 0; i < ans.size(); i++) {
    printf("%d %d\n", tt[i], ans[i]);
  }
  return 0;
}
