#include<iostream>
#include<fstream>
using namespace std;
#define MOD 1000000007
#define ll long long int
ll a[101][101], p[101][101], m;
void mul(ll m1[101][101], ll m2[101][101]){
ll m3[101][101], m4[101][101];
ll i,j,k;
for(i=0; i<m; i++){
for(j=0; j<m; j++){
m3[i][j] = m1[i][j];
m4[i][j] = m2[i][j];
p[i][j] = 0;
}
}
for(i=0; i<m; i++){
for(j=0; j<m; j++){
for(k=0; k<m; k++){
p[i][j] += (m3[i][k] * m4[k][j]);
p[i][j] %= MOD;
}
}
}
}
void power(ll n){
if(n==0 or n==1){
return;
}
power(n/2);
mul(p, p);
if(n%2){
mul(p, a);
}
}
int main(){
//freopen("input_knpd.txt", "r", stdin);
ll t,n,i,j;
cin>>t;
while(t--){
cin>>m>>n;
ll s[m+1];
for(i=0; i<m; i++){
cin>>s[i];
s[i] += MOD;
}
for(i=0; i<m; i++){
cin>>a[0][m-1-i];
}
for(i=1; i<m; i++){
for(j=0; j<m; j++){
if(i==(j+1)){
a[i][j] = 1;
}
else{
a[i][j] = 0;
}
}
}
for(i=0; i<m; i++){
for(j=0; j<m; j++){
p[i][j] = a[i][j];
}
}
if(n>=m){
power(n-m+1);
ll ans = 0;
for(i=0; i<m; i++){
ans += (p[0][i]*s[m-1-i]);
ans %= MOD;
}
cout<<ans<<endl;
}
else{
cout<<s[n]%MOD<<endl;
}
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGZzdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIGxsIGxvbmcgbG9uZyBpbnQKIApsbCBhWzEwMV1bMTAxXSwgcFsxMDFdWzEwMV0sIG07CiAKdm9pZCBtdWwobGwgbTFbMTAxXVsxMDFdLCBsbCBtMlsxMDFdWzEwMV0pewogICAgbGwgbTNbMTAxXVsxMDFdLCBtNFsxMDFdWzEwMV07CiAgICBsbCBpLGosazsKICAgIGZvcihpPTA7IGk8bTsgaSsrKXsKICAgICAgICBmb3Ioaj0wOyBqPG07IGorKyl7CiAgICAgICAgICAgIG0zW2ldW2pdID0gbTFbaV1bal07CiAgICAgICAgICAgIG00W2ldW2pdID0gbTJbaV1bal07CiAgICAgICAgICAgIHBbaV1bal0gPSAwOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpPTA7IGk8bTsgaSsrKXsKICAgICAgICBmb3Ioaj0wOyBqPG07IGorKyl7CiAgICAgICAgICAgIGZvcihrPTA7IGs8bTsgaysrKXsKICAgICAgICAgICAgICAgIHBbaV1bal0gKz0gKG0zW2ldW2tdICogbTRba11bal0pOwogICAgICAgICAgICAgICAgcFtpXVtqXSAlPSBNT0Q7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KIAp2b2lkIHBvd2VyKGxsIG4pewogICAgaWYobj09MCBvciBuPT0xKXsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBwb3dlcihuLzIpOwogICAgbXVsKHAsIHApOwogICAgaWYobiUyKXsKICAgICAgICBtdWwocCwgYSk7CiAgICB9Cn0KIAppbnQgbWFpbigpewogICAgLy9mcmVvcGVuKCJpbnB1dF9rbnBkLnR4dCIsICJyIiwgc3RkaW4pOwogICAgbGwgdCxuLGksajsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgY2luPj5tPj5uOwogICAgICAgIGxsIHNbbSsxXTsKICAgICAgICBmb3IoaT0wOyBpPG07IGkrKyl7CiAgICAgICAgICAgIGNpbj4+c1tpXTsKICAgICAgICAgICAgc1tpXSArPSBNT0Q7CiAgICAgICAgfQogCiAgICAgICAgZm9yKGk9MDsgaTxtOyBpKyspewogICAgICAgICAgICBjaW4+PmFbMF1bbS0xLWldOwogICAgICAgIH0KIAogICAgICAgIGZvcihpPTE7IGk8bTsgaSsrKXsKICAgICAgICAgICAgZm9yKGo9MDsgajxtOyBqKyspewogICAgICAgICAgICAgICAgaWYoaT09KGorMSkpewogICAgICAgICAgICAgICAgICAgIGFbaV1bal0gPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICBhW2ldW2pdID0gMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IoaT0wOyBpPG07IGkrKyl7CiAgICAgICAgICAgIGZvcihqPTA7IGo8bTsgaisrKXsKICAgICAgICAgICAgICAgIHBbaV1bal0gPSBhW2ldW2pdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKG4+PW0pewogICAgICAgICAgICBwb3dlcihuLW0rMSk7CiAgICAgICAgICAgIGxsIGFucyA9IDA7CiAgICAgICAgICAgIGZvcihpPTA7IGk8bTsgaSsrKXsKICAgICAgICAgICAgICAgIGFucyArPSAocFswXVtpXSpzW20tMS1pXSk7CiAgICAgICAgICAgICAgICBhbnMgJT0gTU9EOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PGFuczw8ZW5kbDsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgY291dDw8c1tuXSVNT0Q8PGVuZGw7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0=