PROG0500 - Words and numbers

no tags 

The word value of an integer is computed as the sum of the positions in the alphabet of all letters in the English name of the number. Herewith, the letter A is the first letter of the alphabet, the letter B is the second letter of the alphabet, and so on.

As an example, consider the integer 4. The English name of this integer is written as FOUR. The word value of the integer can thus be computed in the following way $$ 4 \longrightarrow \text{FOUR} \longrightarrow 6(\text{F}) + 15(\text{O}) + 21(\text{U}) + 18(\text{R}) \longrightarrow 60 $$ The smallest number that is diminished by this procedure is 80 $$ 80 \longrightarrow \text{EIGHTY} \longrightarrow 5(\text{E}) + 9(\text{I}) + 7(\text{G}) + 8(\text{H}) + 20(\text{T}) + 25(\text{Y}) \longrightarrow 74 $$ Curiously, it's also the smallest such number in Spanish, if we take into account that Spanish uses 27 letters with ñ in the 15th position $$ 80 \longrightarrow \text{OCHENTA} \longrightarrow 16(\text{O}) + 3(\text{C}) + 8(\text{H}) + 5(\text{E}) + 14(\text{N}) + 21(\text{T}) + 1(\text{A}) \longrightarrow 68 $$

The figure below shows that the integer 500 is yet another example of an integer whose word value is smaller than the value of the integer itself.

voorbeeld met 500
Illustration showing how the word value of the integer 500 is computed. This is an example where the word value (116) is smaller than the value of the integer itself (500).

Input

The input contains a list of integers. The first line contains an integer $n \in \mathbb{N}$ that indicates how many integers are in the list. This is followed by another $n$ lines that each contain an integer (represented as a series of digits), followed by a comma, a space and the English name of the integer. Note that apart from letters, the name may contain other characters. Only the letters in the name must be taken into account while determining the word value. Letters must be treated case insensitive.

Output

There is only a single line of output containing a list of all integers from the given list whose word value is smaller than the integer value itself. Each integer that fulfills this condition must be included in the list, followed by the word value of the integer enclosed in square brackets. All integers having a smaller word value must be listed in their original order as they appear in the input, separated from each other by a comma and a space. The output must be an empty line if all integers in the given list have a word value that is greater than or equal to the integer value itself.

Example

Input:

4
4, four
80, eiGhTY
14, fourteen
100, one hundred

Output:

80[74]

Example

Input:

6
500, five hundred
10, ten
130, one hundred, thirty
1003, ONE THOUSAND, THREE
551, five hundred, fifty-one
0, zero

Output:

500[116], 1003[192], 551[216]

Example

Input:

7
10, ten
20, twenty
30, thirty
40, forty
50, fifty
60, sixty
70, seventy

Output:


De woordwaarde van een getal wordt berekend als de som van de posities in het alfabet van alle letters in de Engelse naam van het getal. Hierbij staat de letter A op de eerste plaats in het alfabet, de letter B op de tweede plaats, enzoverder.

Neem als voorbeeld het getal 4. De Engelse naam van dit getal is FOUR. De woordwaarde van het getal kan dus op de volgende manier berekend worden $$ 4 \longrightarrow \text{FOUR} \longrightarrow 6(\text{F}) + 15(\text{O}) + 21(\text{U}) + 18(\text{R}) \longrightarrow 60 $$ Het kleinste getal waarvan de woordwaarde kleiner is dan de waarde van het getal zelf is 80 $$ 80 \longrightarrow \text{EIGHTY} \longrightarrow 5(\text{E}) + 9(\text{I}) + 7(\text{G}) + 8(\text{H}) + 20(\text{T}) + 25(\text{Y}) \longrightarrow 74 $$ Vreemd genoeg is dat ook het kleinste getal als we de Spaanse naam van de getallen beschouwen, en er rekening mee houden dat het Spaanse alfabet bestaat uit 27 letters waarbij de letter ñ op positie 15 staat $$ 80 \longrightarrow \text{OCHENTA} \longrightarrow 16(\text{O}) + 3(\text{C}) + 8(\text{H}) + 5(\text{E}) + 14(\text{N}) + 21(\text{T}) + 1(\text{A}) \longrightarrow 68 $$

Onderstaande figuur illustreert dat ook het getal 500 een kleinere woordwaarde heeft dan de waarde van het getal zelf.

voorbeeld met 500
Illustratie van de berekening van de woordwaarde van het getal 500. Dit is een voorbeeld waarbij de woordwaarde (116) kleiner is dan de waarde van het getal zelf (500).

Invoer

De invoer bestaat uit een lijst van natuurlijke getallen. De eerste regel van de invoer bevat een getal $n \in \mathbb{N}$ dat aangeeft hoeveel getallen er in de lijst voorkomen. Daarna volgen $n$ regels die elk een natuurlijk getal bevatten (voorgesteld als een reeks cijfers), gevolgd door een komma, een spatie en de Engelse naam van het getal. Merk op dat de Engelse naam naast letters ook nog andere karakters kan bevatten. Bij het bepalen van de woordwaarde moeten echter alleen de letters in de naam in rekening gebracht worden, en mag er geen onderscheid gemaakt worden tussen hoofdletters en kleine letters.

Uitvoer

De uitvoer bestaat uit één enkele regel die een lijst bevat van alle natuurlijke getallen uit de gegeven lijst waarvan de woordwaarde kleiner is dan de waarde van het getal zelf. Elk getal dat aan die voorwaarde voldoet, moet in de lijst opgenomen worden, gevolgd door de woordwaarde van het getal tussen vierkante haakjes. Alle getallen met hun kleinere woordwaarde moeten opgelijst worden in de oorspronkelijke volgorde zoals ze voorkomen in de invoer, van elkaar gescheiden door een komma en een spatie. De uitvoer bestaat dus uit een lege regel indien de gegeven lijst enkel getallen bevat met een woordwaarde die groter of gelijk is aan de waarde van het getal zelf.

Voorbeeld

Invoer:

4
4, four
80, eiGhTY
14, fourteen
100, one hundred

Uitvoer:

80[74]

Voorbeeld

Invoer:

6
500, five hundred
10, ten
130, one hundred, thirty
1003, ONE THOUSAND, THREE
551, five hundred, fifty-one
0, zero

Uitvoer:

500[116], 1003[192], 551[216]

Voorbeeld

Invoer:

7
10, ten
20, twenty
30, thirty
40, forty
50, fifty
60, sixty
70, seventy

Uitvoer:




Added by:Peter Dawyndt
Date:2014-08-29
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None