#include <fstream>
//#include <iostream>
/* 0 <= T <= 100;
* 1 <= X <= Y <= Z <= 10.000;
* 1 <= A, B, C <= 1.000;
* 3 <= N <= 2.000.000.000.
*/
short T, X, Y, Z, A, B, C;
long N;
const long M = 666013;
unsigned long long mod_exp(unsigned long long base,
unsigned long long exponent,
unsigned long long modulus)
{
if (modulus == 1)
{
return 0;
}
else
{
unsigned long long result = 1;
base %= modulus;
while (exponent > 0)
{
if (exponent % 2 != 0)
{
result = (result * base) % modulus;
}
exponent >>= 1;
base = (base * base) % modulus;
}
return result;
}
}
// Nr. of rabbits on the N-th day, modulo 666013. (lMOao)s
unsigned long long N_day(long long i = N)
{
if (i == 0)
{
return X;
}
if (i == 1)
{
return Y;
}
if (i == 2)
{
return Z;
}
else
{
unsigned long long
result = mod_exp(A * N_day(i - 1) + B * N_day(i - 2) + C * N_day(i - 3), 1, M);
return result;
}
}
int main()
{
std::ifstream fisierIN("iepuri.in");
std::ofstream fisierOUT("iepuri.out");
// if T == 0 fisierOUT << X ????
// else:
fisierIN >> T;
for (int i = 0; i < T; ++i)
{
fisierIN >> X >> Y >> Z >> A >> B >> C >> N;
fisierOUT << N_day() << "\n";
}
fisierIN.close();
fisierOUT.close();
//std::cin >> X >> Y >> Z >> A >> B >> C >> N;
// std::cout << N_day();
return 0;
}
// Z(0) = X;
// Z(i) = A * Z(i - 1) + B * Z(i - 2) + C * Z(i - 3) for
// 3 <= i <= N.