#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
vector<vector<int> > matrixProduct(vector<vector<int> > &m1, vector<vector<int> > &m2){
int rows = m1.size();
int columns = m2[0].size();
//cout << "The resulting matrix will have dimensions : " << "(" << rows << ", " << columns << ")" << "\n";
vector<vector<int> > r(rows, vector<int>(columns, 0));
for(int k = 0; k<columns; k++){
for(int i = 0; i<rows; i++){
for(int j = 0; j<m2.size(); j++){
r[i][k] += (m1[i][j] * m2[j][k] % 666013);
}
r[i][k] = r[i][k] % 666013;
}
}
using namespace std;
return r;
}
void solve(int X, int Y, int Z, int A, int B, int C, int N){
vector<vector<int>> M = {
{0, 1, 0},
{0, 0, 1},
{C, B, A}
};
vector<vector<int>> I = {
{X},
{Y},
{Z}
};
int P = N - 2;
vector<vector<int>> result = {
{1, 0, 0},
{0, 1, 0},
{0, 0, 1}
};
while(P > 0){
if(P&1) result = matrixProduct(result, M);
M = matrixProduct(M, M);
P = P >> 1;
}
/*
for(auto r : result){
for(auto c : r){
cout << c << " ";
}
cout << endl;
}
*/
result = matrixProduct(result, I);
cout << result[2][0] << endl;
}
int main(){
int T;
in >> T;
for(int i = 0; i<T; i++){
int X, Y, Z, A, B, C, N;
in >> X >> Y >> Z >> A >> B >> C >> N;
solve(X, Y, Z, A, B, C, N);
}
}