//S-O IA DRACU DE PROBLEMA!!
// https://www.geeksforgeeks.org/c-program-multiply-two-matrices/
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin ("iepuri.in");
ofstream fout ("iepuri.out");
/*
iepuri[n] = a * iepuri[n-1] + b * iepuri[n-2] + c * iepuri[n-3]\
fibonacci : f[i] = f[i-1] + f[i-2]
(f[i-1] f[i] ) (0 1) Ridicata la puteri obtinem urmatorii termeni ai
(f[i] f[i+1]) (1 1) sirului
Concluzie: trebuie gasita o noua matrice, care sa mearga pe acelasi
principiu pentru formula de la iepuri (TODO)
*/
const ll ct = 666013;
void multiply (ll a[3][3], ll b[3][3]) {
ll rez[3][3]={{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
for (int q=0; q<3; q++) {
rez[i][j]+=a[i][q]*b[q][j];
if (rez[i][j]>=ct) rez[i][j]%=ct;
}
}
}
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
a[i][j] = rez[i][j];
}
}
}
void display (ll a[3][3]) {
for (int i=0; i<3; i++) {
for (int j=0; j<3; j++) {
cout<<a[i][j]<<' ';
}
cout<<'\n';
}
cout<<'\n';
}
int main()
{
fin.tie(0); fin.sync_with_stdio(false);
int m; fin>>m;
while (m--) {
int x, y, z, a, b, c, n;
fin>>x>>y>>z>>a>>b>>c>>n;
ll abc[3][3]={{a, 1, 0}, {b, 0, 1}, {c, 0, 0}}, iepuri[3][3]={{z, y, x}, {0, 0, 0}, {0, 0, 0}};
// Ignoram primele 3 zile si ingoram 1 la puterea constantelor, pt ca inmultirea finala va fi cu matricea iepurilor
int new_power = n - 2;
// int power_ct = new_power - 1;
// ll rez[3][3] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
while (new_power) {
if (new_power%2==1) multiply(iepuri, abc);
multiply(abc, abc);
new_power/=2;
// display(iepuri);
}
if (n==0) fout<<x<<'\n';
else if (n==1) fout<<y<<'\n';
else if (n==2) fout<<z<<'\n';
else fout<<iepuri[0][0]<<'\n';
}
return 0;
}