#include <cstdio>
#include <cstring>
const long long MOD = 666013;
long long A[3][3] = { {0,1,0}, {0,0,1}, {0,0,0} };
long long P[3][3];
void product(const long long (&A)[3][3], const long long (&B)[3][3], long long C[3][3]) {
long long tmp[3][3];
for (long long i=0; i<3; ++i)
for (long long j=0; j<3; ++j) {
tmp[i][j] = 0;
for (long long k=0; k<3; ++k)
tmp[i][j] = (tmp[i][j] + A[i][k]*B[k][j] % MOD) % MOD;
}
for (long long i=0; i<3; ++i)
for (long long j=0; j<3; ++j)
C[i][j] = tmp[i][j] % MOD;
}
void print(long long a[3][3]) {
for (long long i=0; i<3; ++i) {
for (long long j=0; j<3; ++j)
printf("%lld ", a[i][j]);
printf("\n");
}
}
void putere(long long n) {
if ( n&1 ) {
memcpy(P, A, sizeof(P));
} else {
memset(P, 0, sizeof(P));
P[1][1] = P[2][2] = P[0][0] = 1;
}
long long pow[3][3];
memcpy(pow, A, sizeof(A));
for (long long i=2; i<=n; i<<=1) {
product(pow, pow, pow);
if ( n&i )
product(P, pow, P);
}
}
int main() {
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
long long T;
scanf("%lld", &T);
while ( T-- ) {
long long x,y,z,a,b,c,n;
scanf("%lld %lld %lld %lld %lld %lld %lld", &x,&y,&z,&a,&b,&c,&n);
A[0][0] = a, A[1][0] = b, A[2][0] = c;
putere(n-2);
// print(P);
printf("%lld\n", ( (P[0][0]*z) % MOD + (P[1][0]*y) % MOD + (P[2][0]*x) % MOD ) % MOD);
// printf("\n");
}
return 0;
}