#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll b[12],c[12];
int k;
ll solve(ll n);
ll** form_trans_matrix();
ll** power(ll **trans,int exp);
//void print(ll **a,int m,int n);
ll** multiply(ll **a,ll **b);
int main(){
int t;cin>>t;
ll n;
int i;
while(t--)
{
cin>>k;
for(i=0;i<k;i++)
cin>>b[i];
for(i=0;i<k;i++)
cin>>c[i];
cin>>n;
cout<<solve(n)<<endl;
}
}
ll solve(ll n)
{
if(n<=k)
return b[n-1]%1000000000;
ll **trans = form_trans_matrix();
trans = power(trans,n-k);
ll ans=0;
for(int i=0;i<k;i++)
{
ans+= trans[k-1][i] * b[i];
ans = ans % 1000000000;
}
//delete the matrix
for(int i = 0; i < k; ++i) {
delete[] trans[i];
}
delete[] trans;
return ans;
}
//exponentiation
ll** power(ll **trans,int exp){
if(exp==1)
{
ll **mul = new ll*[k];
for(int i=0;i<k;i++)
mul[i] = new ll[k];
for(int i=0;i<k;i++)
for(int j=0;j<k;j++)
mul[i][j] = trans[i][j];
return mul;
}
ll** res = power(trans,exp/2);
multiply(res,res);
if(exp&1)
multiply(res,trans);
// print(res,k,k);
return res;
}
//multiplies two matrices and stores the result in matrix a
ll** multiply(ll **a,ll **b){
ll **mul = new ll*[k];
for(int i=0;i<k;i++)
mul[i] = new ll[k];
for (int i = 0; i < k; i++)
for (int j = 0; j < k; j++)
{
mul[i][j] = 0;
for (int z = 0; z < k; z++)
mul[i][j] += ( a[i][z]*b[z][j] )%1000000000;
}
for (int i=0; i<k; i++)
for (int j=0; j<k; j++)
a[i][j] = mul[i][j];
}
//base matrix for exponentiation
ll** form_trans_matrix(){
ll **trans = new ll*[k];
for(int i=0;i<k;i++)
trans[i] = new ll[k];
//transformation matrix formation
for(int i=0;i<k-1;i++)
for(int j=0;j<k;j++)
{
if(j ==(i+1) )
trans[i][j]=1;
else
trans[i][j]=0;
}
for(int i=0;i<k;i++)
trans[k-1][i] = c[k-i-1];
return trans;
}
/*
void print(ll **a,int m,int n){
cout<<endl;
int i,j;
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<"\t";
cout<<endl;
}
}
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CgpsbCBiWzEyXSxjWzEyXTsKaW50IGs7CgpsbCBzb2x2ZShsbCBuKTsKbGwqKiBmb3JtX3RyYW5zX21hdHJpeCgpOwpsbCoqIHBvd2VyKGxsICoqdHJhbnMsaW50IGV4cCk7Ci8vdm9pZCBwcmludChsbCAqKmEsaW50IG0saW50IG4pOwpsbCoqIG11bHRpcGx5KGxsICoqYSxsbCAqKmIpOwoKaW50IG1haW4oKXsKCWludCB0O2Npbj4+dDsKCWxsIG47CglpbnQgaTsKCXdoaWxlKHQtLSkKCXsKCQljaW4+Pms7CgkJZm9yKGk9MDtpPGs7aSsrKQoJCQljaW4+PmJbaV07CgkJZm9yKGk9MDtpPGs7aSsrKQoJCQljaW4+PmNbaV07CgkJY2luPj5uOwoJCWNvdXQ8PHNvbHZlKG4pPDxlbmRsOwoJfQp9CgpsbCBzb2x2ZShsbCBuKQp7CglpZihuPD1rKQoJCXJldHVybiBiW24tMV0lMTAwMDAwMDAwMDsKCWxsICoqdHJhbnMgPSBmb3JtX3RyYW5zX21hdHJpeCgpOwoJdHJhbnMgPSBwb3dlcih0cmFucyxuLWspOwoJbGwgYW5zPTA7Cglmb3IoaW50IGk9MDtpPGs7aSsrKQoJewoJCWFucys9IHRyYW5zW2stMV1baV0gKiBiW2ldOwoJCWFucyA9IGFucyAlIDEwMDAwMDAwMDA7Cgl9CgkKCS8vZGVsZXRlIHRoZSBtYXRyaXgKCSBmb3IoaW50IGkgPSAwOyBpIDwgazsgKytpKSB7CiAgICAgICAgZGVsZXRlW10gdHJhbnNbaV07ICAgCiAgICB9CiAgICBkZWxldGVbXSB0cmFuczsKCQoJcmV0dXJuIGFuczsKfQovL2V4cG9uZW50aWF0aW9uIApsbCoqIHBvd2VyKGxsICoqdHJhbnMsaW50IGV4cCl7CglpZihleHA9PTEpCgkJewoJCWxsICoqbXVsID0gIG5ldyBsbCpba107CgkJCWZvcihpbnQgaT0wO2k8aztpKyspCgkJCQltdWxbaV0gPSBuZXcgbGxba107CgkJZm9yKGludCBpPTA7aTxrO2krKykKCQkJZm9yKGludCBqPTA7ajxrO2orKykKCQkJCW11bFtpXVtqXSA9IHRyYW5zW2ldW2pdOwoJCQlyZXR1cm4gbXVsOwoJCX0KCWxsKiogcmVzID0gcG93ZXIodHJhbnMsZXhwLzIpOwoJbXVsdGlwbHkocmVzLHJlcyk7CgkKCWlmKGV4cCYxKQoJCW11bHRpcGx5KHJlcyx0cmFucyk7CgkKLy8JcHJpbnQocmVzLGssayk7CglyZXR1cm4gcmVzOwp9Ci8vbXVsdGlwbGllcyB0d28gbWF0cmljZXMgYW5kIHN0b3JlcyB0aGUgcmVzdWx0IGluIG1hdHJpeCBhCmxsKiogbXVsdGlwbHkobGwgKiphLGxsICoqYil7CgoJbGwgKiptdWwgPSAgbmV3IGxsKltrXTsKCQlmb3IoaW50IGk9MDtpPGs7aSsrKQoJCQltdWxbaV0gPSBuZXcgbGxba107CgkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBrOyBpKyspIAogICAgCSAgICBmb3IgKGludCBqID0gMDsgaiA8IGs7IGorKykgCiAgICAgICAgCXsgCiAgICAgICAgICAgIAltdWxbaV1bal0gPSAwOyAKICAgICAgICAgICAgCWZvciAoaW50IHogPSAwOyB6IDwgazsgeisrKSAKICAgICAgICAgICAgICAgIAltdWxbaV1bal0gKz0gKCBhW2ldW3pdKmJbel1bal0gKSUxMDAwMDAwMDAwOyAKICAgICAgICAJfSAgIAogICAgCWZvciAoaW50IGk9MDsgaTxrOyBpKyspIAogICAgICAgIAlmb3IgKGludCBqPTA7IGo8azsgaisrKSAKICAgICAgICAgICAgCWFbaV1bal0gPSBtdWxbaV1bal07IAp9IAoKCi8vYmFzZSBtYXRyaXggZm9yIGV4cG9uZW50aWF0aW9uCmxsKiogZm9ybV90cmFuc19tYXRyaXgoKXsKCWxsICoqdHJhbnMgPSAgbmV3IGxsKltrXTsKCWZvcihpbnQgaT0wO2k8aztpKyspCgkJdHJhbnNbaV0gPSBuZXcgbGxba107CgkvL3RyYW5zZm9ybWF0aW9uIG1hdHJpeCBmb3JtYXRpb24KCWZvcihpbnQgaT0wO2k8ay0xO2krKykKCQlmb3IoaW50IGo9MDtqPGs7aisrKQoJCXsKCQkJaWYoaiA9PShpKzEpICkKCQkJCXRyYW5zW2ldW2pdPTE7CgkJCWVsc2UKCQkJCXRyYW5zW2ldW2pdPTA7CgkJfQoJZm9yKGludCBpPTA7aTxrO2krKykKCQl0cmFuc1trLTFdW2ldID0gY1trLWktMV07CglyZXR1cm4gdHJhbnM7Cn0KLyoKdm9pZCBwcmludChsbCAqKmEsaW50IG0saW50IG4pewoJCWNvdXQ8PGVuZGw7CgkJaW50IGksajsKCQlmb3IoaW50IGk9MDtpPG07aSsrKQoJCQl7CgkJCQlmb3IoaW50IGo9MDtqPG47aisrKQoJCQkJCWNvdXQ8PGFbaV1bal08PCJcdCI7CgkJCQljb3V0PDxlbmRsOwoJCQkJfQoJfQoqLw==