#564. 多点求值

多点求值

给定 nn 和素数 pp,求所有满足下面条件的复数 x+yix + yi 的乘积:

  • 0x,yn0\leq x, y \leq n,且 x,yx, y 都是整数。
  • x,yx, y 中至少有一个数不被 pp 整除。

输出最后的结果的实部和虚部对 pp 取模的结果。如果是负数,将取模的结果加上 pp 输出。

输入格式

两个整数 p,np, n,保证 pp 是素数。

输出格式

两个数,表示实部和虚部。

样例输入1

3 1

样例输出1

2 1

样例输入2

5 5

样例输出2

0 0

样例输入3

991 12345678

样例输出3

394 394

样例输入4

499979 1000000000000000000

样例输出4

486292 0

数据范围

10%10\%n1000n\leq 1000

另外 10%10\%, nnpp 的倍数。

另外 20%20\%, p1000p \leq 1000

另外 30%30\%, p5×105p\leq 5\times 10^5

100%100\%, 1n1018,3p5×1061\leq n \leq 10^{18}, 3\le p\leq 5\times 10^6