Playing cards is a nice way to spend time. However, when prize money is involved, sometimes players get involved in a more professional way and try to learn as much as possible about the game. One particular concern is finding out the minimum number of cards needed to obtain a hand of a determined rank, if possible, given the card ranking. You have been asked to write a computer program to help out.
For example, considering aces rank 25 points, figures (kings, queens and jacks) rank 10 points and numbered cards rank 1 point, the minimum number of cards to obtain a 30 point hand is 3 (three figures). Notice that in this case it is possible to obtain hands of any rank, but if numbered cards ranked 5 then it would not be possible to obtain a 12 point ranked hand.
Given the desired hand rank and a card ranking, your program must determine the minimum number of cards needed to obtain, if possible, the desired rank, considering unlimited decks.
The first line includes two integers C and H, which specify the number of card types and the desired hand rank respectively. The following C lines include a string T and an integer R, separated by a single white space, which specify the card type and the card rank, respectively.
• | 1 ≤ C ≤ 56 | Number of card types | |
• | 1 ≤ H ≤ 1000000 | Hand rank desired | |
• | 1 ≤ R ≤ 100 | Card rank |
The output consists in a single line containing the minimum number of cards needed to obtain a hand of the desired rank, if possible, or NO otherwise.
3 30
Ace 25
Figure 10
Number 1
3
3 12
Ace 25
Figure 10
Number 5
NO