Reyno has invented his own encryption algorithm (called Reyno's Super Algorithm), which he uses to encrypt messages he sends to his friends. His algorithm works as follows:
- He writes down his message. If it has an odd length, he adds a space to the end.
- He breaks his message into pairs of characters, forming pairs in total.
- He converts each pair into a number by multiplying the ASCII value of the first character by and adding the value of the second character.
- He generates pseudo-random numbers .
- He multiplies the value of the first pair by and outputs the result modulo (which is prime).
- He repeats step for the second, third, fourth, etc. pair until he encrypts the entire message.
To generate the random numbers, he uses a linear congruential generator (which you have seen before). His generator uses the function:
Which means that to generate the random number (), he multiplies the number () by modulo . For the first number (), also known as the seed value, he picks a random number that he really likes. Reyno thinks his algorithm is unbreakable. Can you prove him wrong?
Input Specification
The first line of the input provides the number of test cases, . test cases follow. Each test case begins with the integer . The next line contains integers, the encrypted values of the message.
For of the cases, Reyno picks a seed value less than or equal to and only uses uppercase letters and spaces.
Output Specification
For each test case, output the original message. If there are multiple solutions, output the one with the smallest seed value.
Sample Input
3
6
9285 14187 23117 13153 39535 12859
19
11055 2553 29781 23952 11741 3298 15519 1333 12875 23540 747 19405 34018 37512 25977 36696 20201 2481 20533
9
35534 39644 22348 34428 2726 25535 33105 3555 6320
Sample Output
HELLO WORLD
THIS IS REYNO'S UNBREAKABLE ALGORITHM
FOUR MILK NO SUGAR
Explanation for Sample
In the first test case, Reyno uses a seed value of , which means the encryption works as follows:
Value | Original Pair (Value) | Encrypted Value |
---|---|---|
1 | HE (9285) |
9285 |
1997 | LL (9804) |
14187 |
27118 | O (10144) |
23117 |
22469 | WO (11215) |
13153 |
20504 | RL (10572) |
39535 |
17281 | D (8736) |
12859 |
Comments