For problem statement at 0-999/800-899/890-899/891/problemE.txt this is a correct solution, but verifier at 0-999/800-899/890-899/891/verifierE.go ends with All 100 tests passed. can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func power(base, exp int64) int64 {
var res int64 = 1
base %= 1000000007
for exp > 0 {
if exp%2 == 1 {
res = (res * base) % 1000000007
}
base = (base * base) % 1000000007
exp /= 2
}
return res
}
func modInverse(n int64) int64 {
return power(n, 1000000007-2)
}
func main() {
in := bufio.NewReader(os.Stdin)
var n, k int
if _, err := fmt.Fscan(in, &n, &k); err != nil {
return
}
a := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &a[i])
}
e := make([]int64, n+1)
e[0] = 1
for i := 0; i < n; i++ {
val := a[i] % 1000000007
for j := n; j >= 1; j-- {
e[j] = (e[j] + e[j-1]*val) % 1000000007
}
}
var ans int64 = 0
var k_fall int64 = 1
n_inv := modInverse(int64(n))
var n_inv_pow int64 = 1
limit := n
if k < n {
limit = k
}
for m := 1; m <= limit; m++ {
k_fall = (k_fall * int64(k-m+1)) % 1000000007
n_inv_pow = (n_inv_pow * n_inv) % 1000000007
term := (k_fall * n_inv_pow) % 1000000007
term = (term * e[n-m]) % 1000000007
if m%2 == 1 {
ans = (ans + term) % 1000000007
} else {
ans = (ans - term + 1000000007) % 1000000007
}
}
fmt.Println(ans)
}
```