#include<fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
#define MOD 666013
struct matrix
{
int _v[9];
int& v(int i, int j) { return _v[i * 3 + j]; }
int v(int i, int j) const { return _v[i * 3 + j]; }
} v, st;
void inmultire(matrix& rez, matrix a, matrix b, bool flag)
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
rez.v(i, j) = 0;
int la = 3;
int cb = 3;
if(flag)
cb = 1;
for(int i=0; i<la; i++)
for(int j=0; j<cb; j++)
for(int k=0; k<3; k++)
rez.v(i, j) = (rez.v(i,j) + a.v(i, k) * b.v(k, j) % MOD) % MOD;
}
void pow(matrix& p, matrix b, int exp)
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
p.v(i, j) = ((i==j) ? 1 : 0);
while(exp != 0)
{
if(exp%2 == 1)
{
inmultire(p, b, p, 0);
exp --;
}
else
{
inmultire(b, b, b, 0);
exp /= 2;
}
}
}
int main()
{
int t;
int x, y, z, a, b, c, n;
cin>>t;
for(int i=1; i<=t; i++)
{
cin>>x>>y>>z>>a>>b>>c>>n;
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
{
v.v(i, j) = 0;
st.v(i, j) = 0;
}
v.v(0, 1) = 1;
v.v(1, 2) = 1;
v.v(2, 0) = c;
v.v(2, 1) = b;
v.v(2, 2) = a;
st.v(0, 0) = x;
st.v(1, 0) = y;
st.v(2, 0) = z;
pow(v, v, n-2);
inmultire(st, v, st, 1);
cout<<st.v(2, 0)<<'\n';
}
return 0;
}