#include <stdio.h>
#define MOD 666013
long long MatrixA[3][3] = {{0, 1, 0}, //A 1 0
{0, 0, 1}, // B 0 1
{0, 0, 0}};// C 0 0
long long CopyOfA[3][3] = {{0, 1, 0},
{0, 0, 1},
{0, 0, 0}};
void Matrix_3D_Multiply(long long A[3][3], long long B[3][3]){
long long C[3][3];
long long i, j, n;
memset(C, 0, 9 * sizeof(long long));
for(i=0; i<3; i++){
for(j=0; j<3; j++){
for(n=0; n<3; n++){
C[i][j] = (C[i][j]%MOD + ((A[i][n]%MOD)*(B[n][j]%MOD))%MOD)%MOD;
}
}
}
memcpy(A, C, 9 * sizeof(long long));
}
long long Expo(long long A[3][3], long long b){
long long result[3][3] = {{1, 0, 0},
{0, 1, 0},
{0, 0, 1}};
while(b){
if(b&1){
Matrix_3D_Multiply(result, A);
}
b >>= 1;
Matrix_3D_Multiply(A, A);
}
memcpy(A, result, 9 * sizeof(long long));
}
int main(){
FILE *file1, *file2;
long long T, X, Z, Y, A, B, C, N;
file1 = fopen("iepuri.in", "r");
file2 = fopen("iepuri.out", "w");
fscanf(file1, "%lld", &T);
while(T--){
fscanf(file1, "%lld %lld %lld %lld %lld %lld %lld", &X, &Y, &Z, &A, &B, &C, &N);
memcpy(MatrixA, CopyOfA, 9 * sizeof(long long));
MatrixA[0][0] = A;
MatrixA[1][0] = B;
MatrixA[2][0] = C;
Expo(MatrixA, N-2);
fprintf(file2, "%lld\n", (((Z*MatrixA[0][0])%MOD + (Y*MatrixA[1][0])%MOD)%MOD + (X*MatrixA[2][0])%MOD)%MOD);
}
return 0;
}