For problem statement at 0-999/600-699/620-629/621/problemE.txt this is a correct solution, but verifier at 0-999/600-699/620-629/621/verifierE.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"fmt"
)
const MOD = 1000000007
func multiply(A, B [][]int64, sz int) [][]int64 {
C := make([][]int64, sz)
for i := 0; i < sz; i++ {
C[i] = make([]int64, sz)
for m := 0; m < sz; m++ {
for j := 0; j < sz; j++ {
C[i][j] = (C[i][j] + A[i][m]*B[m][j]) % MOD
}
}
}
return C
}
func matPow(mat [][]int64, pow, sz int) [][]int64 {
res := make([][]int64, sz)
for i := 0; i < sz; i++ {
res[i] = make([]int64, sz)
res[i][i] = 1
}
for pow > 0 {
if pow&1 == 1 {
res = multiply(res, mat, sz)
}
mat = multiply(mat, mat, sz)
pow >>= 1
}
return res
}
func main() {
var n, b, k, x int
fmt.Scan(&n, &b, &k, &x)
cnt := make([]int64, 10)
for i := 0; i < n; i++ {
var a int
fmt.Scan(&a)
cnt[a]++
}
M := make([][]int64, x)
for i := 0; i < x; i++ {
M[i] = make([]int64, x)
}
for r := 0; r < x; r++ {
for d := 1; d <= 9; d++ {
newR := (r*10 + d) % x
M[r][newR] = (M[r][newR] + cnt[d]) % MOD
}
}
res := matPow(M, b, x)
fmt.Println(res[0][k])
}
```