#include <iostream>
#include <fstream>
#define ull unsigned long long
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
//3x3
//3x1
//3x1
void inmulteste(ull a[][3], ull b[][3])
{
int i,j,k;
ull c[3][3]={{0,0,0},
{0,0,0},
{0,0,0}};
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
for(k=0; k<3; k++)
{
a[i][k] %= 666013;
b[k][j] %= 666013;
c[i][j] += a[i][k] * b[k][j] % 666013;
c[i][j] %= 666013;
}
}
}
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
a[i][j] = c[i][j] % 666013;
}
}
}
void inm(ull a[][3], ull b[][1])
{
int i,j,k;
ull c[3][1]={{0},
{0},
{0}};
for(i=0; i<3; i++)//n
{
for(j=0; j<1; j++)//p
{
for(k=0; k<3; k++)//m
{
a[i][k] %= 666013;
b[k][j] %= 666013;
c[i][j] += a[i][k] * b[k][j] % 666013;
c[i][j] %= 666013;
}
}
}
for(i=0; i<3; i++)//n
{
for(j=0; j<1; j++)//p
{
b[i][j] = c[i][j] % 666013;
}
}
}
void afiseaza(int mat[][1])
{
for(int i=0; i<3; i++)
{
for(int j=0; j<1; j++)
{
out<<mat[i][j]<<" ";
}
out<<"\n";
}
out<<"\n";
}
int main()
{
int t,x,y,z,a,b,c,n;
in>>t;
for(int i=1; i<=t; i++)
{
in>>x>>y>>z>>a>>b>>c>>n;
ull p[3][3]={{0,1,0},
{0,0,1},
{c,b,a}};
ull mat[3][3]={{0,1,0},
{0,0,1},
{c,b,a}};
ull mat2[3][1]={{x},
{y},
{z}};
//mat1 ^ (n-3) * mat2
n=n-3;
while(n>0)
{
if(n%2==1)
{
inmulteste(p,mat);
}
inmulteste(mat,mat);
n/=2;
}
inm(p,mat2);
//afiseaza(mat2);
out<<mat2[2][0]<<"\n";
}
return 0;
}