#include <bits/stdc++.h>
using namespace std;
FILE *in;
FILE *out;
int n, maxHealth, reg, dmgPerSec, health;
int a[1024][2], vis[1024];
int main(void) {
  in = stdin;
  out = stdout;
  dmgPerSec = 0;
  vector<pair<int, int> > scrolls;
  fscanf(in, "%d %d %d", &n, &maxHealth, &reg);
  health = maxHealth;
  for (int i = 0; i < n; i++) {
    fscanf(in, "%d %d", &a[i][0], &a[i][1]);
    scrolls.push_back(make_pair(a[i][0], a[i][1]));
  }
  int ans = -1;
  vector<pair<int, int> > prnt;
  while (1) {
    ans++;
    int roundHealth = health, roundDmgPerSec = dmgPerSec;
    health -= dmgPerSec;
    health = min(maxHealth, health + reg);
    int idx = -1;
    for (int i = 0; i < n; i++)
      if (!vis[i]) {
        int canUse = 1;
        if (((health * 100) / maxHealth) > a[i][0]) canUse = 0;
        if (((health * 100) / maxHealth) == a[i][0] &&
            ((health * 100) % maxHealth > 0))
          canUse = 0;
        if (canUse) {
          if (idx == -1) idx = i;
          if (a[idx][1] < a[i][1]) idx = i;
        }
      }
    if (idx != -1 && health > 0) {
      vis[idx] = 1;
      dmgPerSec += a[idx][1];
      prnt.push_back(make_pair(ans, idx + 1));
    }
    if (health <= 0) break;
    if (roundHealth == health && roundDmgPerSec == dmgPerSec) break;
  }
  if (health > 0)
    fprintf(out, "NO\n");
  else {
    fprintf(out, "YES\n");
    fprintf(out, "%d %d\n", ans, (int)prnt.size());
    for (int i = 0; i < (int)prnt.size(); i++)
      fprintf(out, "%d %d\n", prnt[i].first, prnt[i].second);
  }
  return 0;
}
