package main
import (
"bufio"
"fmt"
"os"
)
const MOD int64 = 1000000007
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var m, n int
if _, err := fmt.Fscan(in, &m, &n); err != nil {
return
}
s := make([]int64, m)
l := make([]int64, m)
for i := 0; i < m; i++ {
var x int64
fmt.Fscan(in, &x)
s[i] = x
}
for i := 0; i < m; i++ {
var x int64
fmt.Fscan(in, &x)
l[i] = x
}
v := make([]int64, m)
v[0] = 1
for day := 0; day < n; day++ {
var X, Y int64
for i := 0; i < m; i++ {
X = (X + v[i]*s[i]) % MOD
Y = (Y + v[i]*l[i]) % MOD
}
newV := make([]int64, m)
for j := 0; j < m; j++ {
a := (s[j] + l[j]) % MOD
newV[j] = (a*X + (s[j]%MOD)*Y) % MOD
}
v = newV
}
var ans int64
for i := 0; i < m; i++ {
ans = (ans + v[i]) % MOD
}
fmt.Fprintln(out, ans)
}