#include <bits/stdc++.h>
#define ll long long
#define mod 1000000000
using namespace std;
ll k,i,j;
vector<ll> a,b,c;
vector<vector<ll>> multiply(vector<vector<ll>> a,vector<vector<ll>> b)
{
vector<vector<ll>> c(k+1,vector<ll> (k+1));
{
for(i=1;i<=k;i++)
{
for(j=1;j<=k;j++)
{
for(int x=1;x<=k;x++)
{
c[i][j]=(c[i][j]+(a[i][x]*b[x][j])%mod)%mod;
}
}
}
}
return c;
}
vector<vector<ll>> pow(vector<vector<ll>>a,ll p)
{
if(p==1)
{
return a;
}
if(p&1)
{
return multiply(a,pow(a,p-1));
}
else
{
vector<vector<ll>> x=(pow(a,p/2));
return multiply(x,x);
}
}
int sai(ll n)
{
if(n==0)
{
return 0;
}
if(n<=k)
{
return b[n-1];
}
vector<ll> f1(k+1);
for(i=1;i<=k;i++)
{
f1[i]=b[i-1];
}
vector<vector<ll>> t(k+1,vector<ll>(k+1));
for(i=1;i<=k;i++)
{
for(j=1;j<=k;j++)
{
if(i<k)
{
if(j==i+1)
{
t[i][j]=1;
}
else
{
t[i][j]=0;
}
continue;
}
t[i][j]=c[k-j];
}
}
t= pow(t,n-1);
ll res=0;
for(i=1;i<=k;i++)
{
res=(res+(t[1][i]*f1[i])%mod)%mod;
}
return res;
}
int main() {
ll t,n;
while(t--)
{
ll num;
cin>>k;
for(i=0;i<k;i++)
{
cin>>num;
b.push_back(num);
}
for(i=0;i<k;i++)
{
cin>>num;
c.push_back(num);
}
cin>>n;
cout<<sai(n)<<endl;
c.clear();
b.clear();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIAojZGVmaW5lIG1vZCAxMDAwMDAwMDAwCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpsbCBrLGksajsKdmVjdG9yPGxsPiBhLGIsYzsKCnZlY3Rvcjx2ZWN0b3I8bGw+PiBtdWx0aXBseSh2ZWN0b3I8dmVjdG9yPGxsPj4gYSx2ZWN0b3I8dmVjdG9yPGxsPj4gYikKewogICAgdmVjdG9yPHZlY3RvcjxsbD4+IGMoaysxLHZlY3RvcjxsbD4gKGsrMSkpOwogICAgewogICAgICAgIGZvcihpPTE7aTw9aztpKyspCiAgICAgICAgewogICAgICAgICAgICBmb3Ioaj0xO2o8PWs7aisrKQogICAgICAgICAgICB7IAogICAgICAgICAgICAgICAgZm9yKGludCB4PTE7eDw9azt4KyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICBjW2ldW2pdPShjW2ldW2pdKyhhW2ldW3hdKmJbeF1bal0pJW1vZCklbW9kOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gYzsKfQp2ZWN0b3I8dmVjdG9yPGxsPj4gcG93KHZlY3Rvcjx2ZWN0b3I8bGw+PmEsbGwgcCkKewogICAgaWYocD09MSkKICAgIHsKICAgICAgICByZXR1cm4gYTsKICAgIH0KICAgIGlmKHAmMSkKICAgIHsKICAgICAgICByZXR1cm4gbXVsdGlwbHkoYSxwb3coYSxwLTEpKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICB2ZWN0b3I8dmVjdG9yPGxsPj4geD0ocG93KGEscC8yKSk7CiAgICAgICAgcmV0dXJuIG11bHRpcGx5KHgseCk7CiAgICB9Cn0KaW50IHNhaShsbCBuKQp7CiAgICBpZihuPT0wKQogICAgewogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaWYobjw9aykKICAgIHsKICAgICAgICByZXR1cm4gYltuLTFdOwogICAgfQoKICAgIHZlY3RvcjxsbD4gZjEoaysxKTsKICAgIGZvcihpPTE7aTw9aztpKyspCiAgICB7CiAgICAgICAgICBmMVtpXT1iW2ktMV07CiAgICB9CiAgICB2ZWN0b3I8dmVjdG9yPGxsPj4gdChrKzEsdmVjdG9yPGxsPihrKzEpKTsKICAgCiAgIGZvcihpPTE7aTw9aztpKyspCiAgIHsKICAgICAgIGZvcihqPTE7ajw9aztqKyspCiAgICAgICB7CiAgICAgICAgICAgaWYoaTxrKQogICAgICAgICAgIHsKICAgICAgICAgICAgICAgaWYoaj09aSsxKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICB0W2ldW2pdPTE7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICB0W2ldW2pdPTA7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgfQogICAgICAgICAgIHRbaV1bal09Y1trLWpdOwogICAgICAgfQogICB9CiAgIHQ9IHBvdyh0LG4tMSk7CgogICBsbCByZXM9MDsKICAgZm9yKGk9MTtpPD1rO2krKykKICAgewogICAgICAgcmVzPShyZXMrKHRbMV1baV0qZjFbaV0pJW1vZCklbW9kOwogICB9CiAgIHJldHVybiByZXM7Cgp9CmludCBtYWluKCkgewogICAgbGwgdCxuOwogICAgCiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgbGwgbnVtOwogICAgICAgIGNpbj4+azsKICAgICAgICBmb3IoaT0wO2k8aztpKyspCiAgICAgICAgewogICAgICAgICAgICAgY2luPj5udW07CiAgICAgICAgICAgICBiLnB1c2hfYmFjayhudW0pOwogICAgICAgIH0KICAgICAgICBmb3IoaT0wO2k8aztpKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+Pm51bTsKICAgICAgICAgICAgYy5wdXNoX2JhY2sobnVtKTsKICAgICAgICB9CiAgICAgICAgY2luPj5uOwogICAgICAgIGNvdXQ8PHNhaShuKTw8ZW5kbDsKCiAgICAgICAgYy5jbGVhcigpOwogICAgICAgIGIuY2xlYXIoKTsKICAgIH0KCn0K