#include <bits/stdc++.h>
using namespace std;
struct spell {
  spell() {
    id = 0;
    spow = 0;
    dmg = 0;
  }
  spell(int _id, int _pow, int _dmg) {
    id = _id;
    spow = _pow;
    dmg = _dmg;
    order = -1;
  }
  int spow;
  int dmg;
  int id;
  int order;
};
bool compS(spell a, spell b) {
  if (a.dmg > b.dmg) {
    return true;
  } else
    return false;
}
int main() {
  int n, mx, cur, nUsed = 0, curLife, reg, p, d, totalDmg = 0, t = 0;
  list<spell> spells, result;
  list<spell>::iterator it;
  scanf("%d %d %d\n", &n, &mx, &reg);
  curLife = mx;
  for (int i = 0; i < n; ++i) {
    scanf("%d %d", &p, &d);
    spells.push_back(spell(i, p, d));
  }
  spells.sort(compS);
  while (1) {
    curLife -= totalDmg;
    curLife += reg;
    curLife = curLife > mx ? mx : curLife;
    cur = 0;
    if (curLife <= 0) {
      break;
    }
    for (it = spells.begin(); it != spells.end(); ++it) {
      if ((100 * curLife <= it->spow * mx) && (it->order == -1)) {
        it->order = t;
        totalDmg += it->dmg;
        result.push_back(*it);
        spells.erase(it);
        ++nUsed;
        break;
      }
    }
    if (it == spells.end() && totalDmg <= reg) {
      printf("NO");
      return 0;
    }
    ++t;
  }
  printf("YES\n");
  printf("%d %d\n", t, nUsed);
  for (it = result.begin(); it != result.end(); ++it) {
    printf("%d %d\n", it->order, it->id + 1);
  }
  return 0;
}
