Vasya’s elder brother Petya loves playing computer games. In one of his favourite computer games Petya reached the final level where a fight with the boss take place.

While playing the game Petya found spell scrolls and now he is about to use them. Let’s describe the way fighting goes on this level:

1) The boss has two parameters: max — the initial amount of health and reg — regeneration rate per second.

2) Every scroll also has two parameters: powi — spell power measured in percents — the maximal amount of health counted off the initial one, which allows to use the scroll (i.e. if the boss has more than powi percent of health the scroll cannot be used); and dmgi the damage per second inflicted upon the boss if the scroll is used. As soon as a scroll is used it disappears and another spell is cast upon the boss that inflicts dmgi of damage per second upon him until the end of the game.

During the battle the actions per second are performed in the following order: first the boss gets the damage from all the spells cast upon him, then he regenerates reg of health (at the same time he can’t have more than max of health), then the player may use another scroll (no more than one per second).

The boss is considered to be defeated if at the end of a second he has nonpositive ( ≤ 0) amount of health.

Help Petya to determine whether he can win with the set of scrolls available to him and if he can, determine the minimal number of seconds he needs to do it.

Input

The first line contains three integers N, max and reg (1 ≤ N, max, reg ≤ 1000) –– the amount of scrolls and the parameters of the boss. The next N lines contain two integers powi and dmgi each — the parameters of the i-th scroll (0 ≤ powi ≤ 100, 1 ≤ dmgi ≤ 2000). 

Output

In case Petya can’t complete this level, output in the single line NO.

Otherwise, output on the first line YES. On the second line output the minimal time after which the boss can be defeated and the number of used scrolls. In the next lines for each used scroll output space-separated number of seconds passed from the start of the battle to the moment the scroll was used and the number of the scroll. Scrolls are numbered starting from 1 in the input order. The first scroll is considered to be available to be used after 0 seconds.

Output scrolls in the order they were used. It is not allowed to use scrolls after the boss is defeated.

Examples

Input

2 10 3
100 3
99 1


Output

NO


Input

2 100 10
100 11
90 9


Output

YES
19 2
0 1
10 2
#include <bits/stdc++.h>
using namespace std;
int Intall, reg;
int tim[1010];
int vis[1010];
typedef struct MyScoll {
  int prec;
  int dim;
  int id;
} SCOLL;
SCOLL sco[1010], tmp[1010];
int main() {
  int n;
  cin >> n >> Intall >> reg;
  for (int i = 0; i < n; ++i) {
    cin >> sco[i].prec >> sco[i].dim;
    sco[i].id = i;
  }
  memset(vis, 0, sizeof(vis));
  int remain = Intall;
  int len(0), now(0), t(0), i(0), t_hurt(0), pre;
  bool ok(true);
  for (;; ++t) {
    i = -1;
    t_hurt = -1;
    pre = remain;
    remain -= now;
    remain += reg;
    if (remain > Intall)
      remain = Intall;
    else if (remain <= 0)
      break;
    for (int j = 0; j < n; ++j) {
      if (vis[j]) continue;
      if (remain * 100 > sco[j].prec * Intall) continue;
      if (sco[j].dim > t_hurt) {
        t_hurt = sco[j].dim;
        i = j;
      }
    }
    if (i == -1 && remain >= pre) {
      ok = false;
      break;
    }
    if (i != -1) {
      tmp[len].id = i;
      tmp[len++].prec = t;
      now += sco[i].dim;
      vis[i] = true;
    }
  }
  if (!ok) {
    printf("NO\n");
    return 0;
  }
  printf("YES\n");
  printf("%d %d\n", t, len);
  for (int k = 0; k < len; ++k) {
    printf("%d %d\n", tmp[k].prec, tmp[k].id + 1);
  }
  return 0;
}
