For problem statement at 0-999/600-699/600-609/603/problemB.txt this is a correct solution, but verifier at 0-999/600-699/600-609/603/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
const MOD int64 = 1000000007
func modpow(base, exp, mod int64) int64 {
res := int64(1)
base %= mod
for exp > 0 {
if exp%2 == 1 {
res = (res * base) % mod
}
base = (base * base) % mod
exp /= 2
}
return res
}
func main() {
in := bufio.NewReader(os.Stdin)
var p, k int64
fmt.Fscan(in, &p, &k)
k %= p
if k == 0 {
fmt.Println(modpow(p, p-1, MOD))
return
}
m := p - 1
divs := []int64{}
for i := int64(1); i*i <= m; i++ {
if m%i == 0 {
divs = append(divs, i)
if i != m/i {
divs = append(divs, m/i)
}
}
}
sort.Slice(divs, func(i, j int) bool { return divs[i] < divs[j] })
var ord int64 = -1
for _, d := range divs {
if modpow(k, d, p) == 1 {
ord = d
break
}
}
exp := (p - 1) / ord
ways := modpow(p, exp, MOD)
if k == 1 {
ways = (ways * p) % MOD
}
fmt.Println(ways)
}
```