#include <cstdio>
using namespace std;
FILE *fin, *fout;
const int NMAX = 10;
const int MOD = 666013;
int C[NMAX][NMAX];
void copy_matrix(int dest[NMAX][NMAX], int src[NMAX][NMAX], int ord)
{
for(int i = 1; i <= ord; i++)
for(int j = 1; j <= ord; j++)
dest[i][j] = src[i][j];
}
void matrix_product(int A[NMAX][NMAX], int B[NMAX][NMAX], int C[NMAX][NMAX], int ord)
{
int AUX[NMAX][NMAX] = {0};
for(int i = 1; i <= ord; i++)
for(int j = 1; j <= ord; j++)
for(int k = 1; k <= ord; k++)
AUX[i][j] = ((0LL + AUX[i][j] + ((1LL * (A[i][k] % MOD) * (B[k][j] % MOD)) % MOD)) % MOD);
copy_matrix(C, AUX, ord);
}
void matrix_lgput(int A[NMAX][NMAX], int B[NMAX][NMAX], int ord, int exp)
{
int AUX[NMAX][NMAX];
copy_matrix(AUX, A, ord);
if(exp == 1 or exp == 0)
{
copy_matrix(B, A, ord);
return;
}
if(exp % 2 == 1)
{
matrix_lgput(A, AUX, ord, exp - 1);
matrix_product(A, AUX, B, ord);
}
else
{
matrix_lgput(A, AUX, ord, exp / 2);
matrix_product(AUX, AUX, B, ord);
}
}
void print_matrix(int ord)
{
for(int i = 1; i <= ord; i++)
{
for(int j = 1; j <= ord; j++)
fprintf(fout, "%d ", C[i][j]);
fprintf(fout, "\n");
}
}
int main()
{
fin = fopen("iepuri.in", "r");
fout = fopen("iepuri.out", "w");
int D[NMAX][NMAX] , F[NMAX][NMAX];
D[1][1] = 0;
D[1][2] = 0;
D[2][1] = 1;
D[2][2] = 0;
D[3][1] = 0;
D[3][2] = 1;
int t;
fscanf(fin, "%d", &t);
int x1, x2, x3, a, b, c, n;
for(int test = 1; test <= t; test++)
{
fscanf(fin, "%d%d%d%d%d%d%d", &x1, &x2, &x3, &a, &b, &c, &n);
D[1][3] = c;
D[2][3] = b;
D[3][3] = a;
matrix_lgput(D, C, 3, n - 2);
for(int i = 1; i <= 3; i++)
{
F[i][1] = x1;
F[i][2] = x2;
F[i][3] = x3;
}
matrix_product(F , C , C , 3);
//print_matrix(3);
fprintf(fout, "%d\n", C[3][3]);
}
fclose(fin);
fclose(fout);
return 0;
}