spoj#AFSK. Power Factor Sum Sum (hard)

Power Factor Sum Sum (hard)

Here is a mixed edition of Divisor Summation Powered and Amazing Factor Sequence (medium).

The powered factor sequence

For k an integer number, we define our powered factor sequence with:

ak[0] = 0; ak[1] = 1, and

for n > 1, ak[n] = ak[n - 1] + sum({x^k | 0 < x ≤ n and n % x = 0}).

Input

First line of input contains an integer T, the number of test cases.

Each of the next T lines contains three integers n, k, m.

Output

For each test case, print ak[n] on a single line.
As the answer could be a big number, you just have to output it modulo m.

Example

Input:
3
3 1 10
4 2 55
5 3 97
Output:
8
37
43

Constraints

0 < T < 101
0 < n < 10^9
0 < k < 11
1 < m < 10^17

Numbers n, k, m are uniform-randomly chosen.
For your information, there's two input files, the first one is 'easy' with n≤100.
My (1kB)-python code get AC around 0.96s. I have a much slower basic PIKE AC (4.8s).
(Edit 2017-02-11 ; timings and TL updated after compiler changes)