调和级数求和

题目描述

给定 $n,p$,求: $$\sum_{i=1}^n \frac 1i $$ 对 $p$ 取模的值。 如果你不知道怎么对分数取模,可以看[这题](https://www.luogu.com.cn/problem/P2613)。 保证答案在模 $p$ 意义下存在。 为了方便你的计算,这里将给出 $p$ 的最小原根 $g$。

输入输出格式

输入格式


输入第一行一个正整数 $T$,表示数据组数。 接下来 $T$ 行,每行三个正整数 $n,p,g$。

输出格式


输出 $T$ 行,每行一个整数表示答案。

输入输出样例

输入样例 #1

5
998007 998244353 3
19260817 998244353 3
274829164 998244353 3
792846153 998244353 3
1924762 899678209 7

输出样例 #1

429767635
632288905
445668022
128133635
3097708

说明

【数据范围】 对于 $30\%$ 的数据,$1\le n \le 10^6$; 对于 $100\%$ 的数据,$1 \le n < p < 2^{30}$,$1\le T \le 20$。 保证 $p$ 为质数,且 $p-1$ 可以被 $2^{19}$ 整除。 注:时限为 std 的三倍,如果过不去请确认时间复杂度正确,并优化常数。