#include<fstream>
#include<iostream>
#include<string.h>
using namespace std;
const int MODULO=666013;
void CreateMat(int **&mat, int n, int m)
{
int i;
mat=new int*[n];
for(i=0; i<n; ++i)
{
mat[i]=new int[m];
}
}
void InitMat(int **&mat, int n, int m)
{
for(int i=0; i<n; ++i)
{
memset(mat[i],0,m*sizeof(int));
}
}
void MulMat(int** const a, int** const b, int **r)
{
int i,j,k;
for(i=0; i<3; ++i)
{
memset(r[i],0,3*sizeof(int));
for(j=0; j<3; ++j)
{
for(k=0; k<3; k++)
{
r[i][j]=(r[i][j]+(a[i][k]*b[k][j]))%MODULO;
}
}
}
}
void PrintMat(int** const a)
{
int i,j;
for(i=0; i<3; ++i)
{
for(j=0; j<3; ++j)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
int **a,**c,**aux,**sol,**swap,i,j;
int X,Y,Z,A,B,C,N,T;
CreateMat(a,3,3);
CreateMat(c,3,3);
CreateMat(aux,3,3);
CreateMat(sol,3,3);
fstream fin("iepuri.in",fstream::in);
fstream fout("iepuri.out",fstream::out);
fin>>T;
for(i=0; i<T; ++i)
{
fin>>X>>Y>>Z>>A>>B>>C>>N;
//cout<<X<<Y<<Z<<A<<B<<C<<N<<endl;
N-=2;
InitMat(a,3,3);
a[1][0]=a[2][1]=1;
a[0][0]=A;
a[0][1]=B;
a[0][2]=C;
InitMat(sol,3,3);
sol[0][0]=sol[1][1]=sol[2][2]=1;
for(j=0; (1<<j)<=N; ++j)
{
if( (1<<j) & N )
{
MulMat(sol,a,aux);
swap=aux;
aux=sol;
sol=swap;
}
MulMat(a,a,c);
swap=c;
c=a;
a=swap;
}
fout<<(sol[0][0]*Z+sol[0][1]*Y+sol[0][2]*X)%MODULO<<endl;
}
fin.close();
fout.close();
return 0;
}