TANDC - Tracy and Charlie
Tracy is teaching Charlie maths via a game called N-Cube, which involves three sections involving N.
Tracy gives Charlie a number N, and Charlie makes a list of Nth powers of integers in increasing order (1N, 2N, 3N... and so on). This teaches him exponentiation.
Then Charlie performs the following subtraction game N times: Take all pairs of consecutive numbers in the list and take their difference. These differences then form the new list for the next iteration of the game. E.g., if N was 6, the list proceeds as [1, 64, 729, 4096 ... ] to [63, 685, 3367 ...], and so on 5 more times.
After the subtraction game, Charlie has to correctly tell Tracy the Nth element of the list. This number is the value of the game.
After practice Charlie became an expert in the game. To challenge him more, Tracy will give two numbers M (where M is a prime) and R instead of just a single number N, and the game must start from MR - 1 instead of N. Since the value of the game can now become large, Charlie just have to tell the largest integer K such that M K divides this number. Since even K can be large, output K modulo 1000000007 (109+7).
Input
First line will contain T, number of test cases. Then T test cases follow. Each test case contains of a single line of input, two integers M R.
Output
For each testcase, output in a single line answer given by Charlie to Tracy modulo 1000000007.
Constraints
1 <= T <= 1000
2 <= M <= 109, M is a prime number
1 <= R <= 109
Example
Input 1 2 2 Output: 1
Explanation
This list is: [1, 8, 27, 64, 125...] → [7, 19, 37, 61...] → [12, 18, 24...] → [6, 6, 6...]. Number of times 2 divides 6 is 1. Hence the answer is 1.
Added by: | Piyush Kumar |
Date: | 2014-07-27 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All |