Time Limit: 3000 MS    Memory Limit: 65536 K 


Description

Mirko has recently bought a wheel of fortune. He wrote an uppercase letter of English alphabet onto each wedge, like this (3rd example test case): No letter appears twice in the wheel, and the wheel spins in clockwise direction. There is a pointer that stays in the same place while the wheel is spinning (it is pointing to H in the picture above). When we spin the wheel, the letter to which the pointer is pointing to changes accordingly. Mirko spinned the wheel K times in a row, and each time he wrote down how many times the pointed letter changed, and what letter was pointed to at the end of that spin. Slavko found that paper, and would like to now what letters Mirko wrote onto the wedges of the wheel. Help him determine this, if the total number of wedges is known.

Input

The first line of input contains integers N (2 N 25), the number of wedges on the wheel, and K (1 K 100), the number of spins. The following K lines contain descriptions Mirko wrote down for each spin, in order. Each line contains an integer S (1 S 100), the number of times the pointed letter changed during that spin, and an uppercase letter at which pointer stopped.

Output

If there is no wheel that meets the requirements described, output !. Otherwise, output sequence of letters written onto the wheel, starting from the pointed letter at the end of the last spin and proceeding clockwise. If some letter cant be determined, output ? instead.

Sample Input

3 3 1 A 2 B 3 C 5 6 1 A 2 B 5 B 1 C 2 A 2 B 8 8 4 V 3 I 7 T 7 A 6 R 5 N 1 O 9 H

Sample Output

! B?A?C HONITAVR

Source

COCI 2010/2011