ModularPowerEquation!!

AtCoder
IDtenka1_2017_f
Time2000ms
Memory256MB
Difficulty
Process the $Q$ queries below. * You are given two integers $A_i$ and $M_i$. Determine whether there exists a positive integer $K_i$ not exceeding $2 × 10^{18}$ such that $A_i^{K_i} ≡ K_i$ $(mod$ $M_i)$, and find one if it exists. ## Constraints * $1 \leq Q \leq 100$ * $0 \leq A_i \leq 10^9(1 \leq i \leq Q)$ * $1 \leq M_i \leq 10^9(1 \leq i \leq Q)$ ## Inputs Input is given from Standard Input in the following format: $Q$ $A_1$ $M_1$ : $A_Q$ $M_Q$ ## Outputs In the $i$\-th line, print $-1$ if there is no integer $K_i$ that satisfies the condition. Otherwise, print an integer $K_i$ not exceeding $2 × 10^{18}$ such that $A_i^{K_i} ≡ K_i$ $(mod$ $M_i)$. If there are multiple solutions, any of them will be accepted. [samples]
Samples
Input #1
4
2 4
3 8
9 6
10 7
Output #1
4
11
9
2

It can be seen that the condition is satisfied: $2^4 = 16 ≡ 4$ $(mod$ $4)$, $3^{11} = 177147 ≡ 11$ $(mod$ $8)$, $9^9 = 387420489 ≡ 9$ $(mod$ $6)$ and $10^2 = 100 ≡ 2$ $(mod$ $7)$.
Input #2
3
177 168
2028 88772
123456789 987654321
Output #2
7953
234831584
471523108231963269
API Response (JSON)
{
  "problem": {
    "name": "ModularPowerEquation!!",
    "description": {
      "content": "Process the $Q$ queries below. *   You are given two integers $A_i$ and $M_i$. Determine whether there exists a positive integer $K_i$ not exceeding $2 × 10^{18}$ such that $A_i^{K_i} ≡ K_i$ $(mod$ $",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "tenka1_2017_f"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Process the $Q$ queries below.\n\n*   You are given two integers $A_i$ and $M_i$. Determine whether there exists a positive integer $K_i$ not exceeding $2 × 10^{18}$ such that $A_i^{K_i} ≡ K_i$ $(mod$ $...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments