F - Find x Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 100

問題文

非負整数 N, M が与えられます。

10^{18} 以下の正整数 x であって x^x \equiv N \pmod M を満たすものが存在するか判定し、存在する場合はそのような x1 つ求めてください。

制約

  • 0 \leq N < M \leq 10^9
  • 入力される値はすべて整数

部分点

以下の制約を満たすデータセットに正解した場合には 1 点が与えられる。

  • M が素数

入力

入力は以下の形式で標準入力から与えられる。

N M

出力

10^{18} 以下の正整数 x であって x^x \equiv N \pmod M を満たすものが存在する場合、そのような x の値を 1 つ出力せよ。そのような x が存在しないとき、-1 を出力せよ。


入力例 1

3 7

出力例 1

5

5^5 = 3125 \equiv 3 \pmod 7 です。


入力例 2

2 6

出力例 2

-1

x^x \equiv 2 \pmod 6 なる 10^{18} 以下の正整数 x は存在しません。