#include <bits/stdc++.h>
using namespace std;
// [x, y, x] @ ([[0, 0, C], [1, 0, B], [0, 1, A]] ** k)
// vars @ d
const int mod = 666013;
long long vars[3], rez[3][3], d[3][3], ans[3][3];
long long tc, x, y, z, a, b, c, k;
void dxB(long long B[3][3]) {
for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) rez[i][j] = 0;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
for (int k = 0; k < 3; ++k) {
rez[i][j] += d[i][k] * B[k][j];
rez[i][j] %= mod;
}
}
}
}
void d_la_k() {
for (long long bit = 1; bit <= k; bit <<= 1) {
if (bit & k) {
dxB(ans);
for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) ans[i][j] = rez[i][j];
}
dxB(d);
for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) d[i][j] = rez[i][j];
}
}
void solve() {
cin >> x >> y >> z >> a >> b >> c >> k;
k -= 2; // k >= 3
// init
for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) ans[i][j] = 0;
ans[0][0] = ans[1][1] = ans[2][2] = 1;
d[0][0] = 0; d[0][1] = 0; d[0][2] = c; d[1][0] = 1; d[1][1] = 0; d[1][2] = b; d[2][0] = 0; d[2][1] = 1; d[2][2] = a;
// compute
d_la_k();
long long out = 0;
out += (x * ans[0][2]); out %= mod;
out += (y * ans[1][2]); out %= mod;
out += (z * ans[2][2]); out %= mod;
cout << out << '\n';
}
int main() {
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cin >> tc;
while (tc--) {
solve();
}
return 0;
}