#include<cstdio>
int t,d1,d2,d3,a,b,c,n,i,j;
long long x[5][5],y[5][5],sol[5][5];
FILE *f,*g;
void prod(long long a[5][5],long long b[5][5],long long c[5][5]){
int i,j,k;
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
c[i][j]=0;
}
}
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
for(k=0;k<=2;k++){
c[i][j]=(c[i][j]+(a[i][k]*b[k][j])%666013)%666013;
}
}
}
}
void add(long long a[5][5],long long b[5][5]){
int i,j;
for(i=0;i<=2;i++){
for(j=0;j<=2;j++){
a[i][j]=b[i][j];
}
}
}
int main(){
f=fopen("iepuri.in","r");
g=fopen("iepuri.out","w");
fscanf(f,"%d",&t);
while(t!=0){
fscanf(f,"%d%d%d%d%d%d%d",&d1,&d2,&d3,&a,&b,&c,&n);
sol[0][0]=sol[1][1]=sol[2][2]=1;
sol[0][1]=sol[0][2]=sol[1][0]=sol[1][2]=sol[2][0]=sol[2][1]=0;
x[0][0]=a;
x[0][1]=b;
x[0][2]=c;
x[1][0]=x[2][1]=1;
x[1][1]=x[2][2]=x[1][2]=x[2][0]=0;
n-=2;
while(n!=0){
if(n%2!=0){
prod(x,sol,y);
add(sol,y);
}
prod(x,x,y);
add(x,y);
n/=2;
}
fprintf(g,"%lld\n",((d3*sol[0][0])%666013+(d2*sol[0][1])%666013+(d1*sol[0][2])%666013)%666013);
t--;
}
fclose(f);
fclose(g);
return 0;
}