#include<fstream>
#include<algorithm>
#include<map>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
#define MOD 666013
int X, Y, Z, A, B, C, T,N;
class Matrix3
{
public:
int A[4][4];
Matrix3(int x1, int x2, int x3, int y1, int y2, int y3, int z1, int z2, int z3)
{
A[1][1] = x1, A[1][2] = x2, A[1][3] = x3;
A[2][1] = y1, A[2][2] = y2, A[2][3] = y3;
A[3][1] = z1, A[3][2] = z2, A[3][3] = z3;
}
Matrix3(const Matrix3 &m)
{
A[1][1] = m.A[1][1], A[1][2] = m.A[1][2], A[1][3] = m.A[1][3];
A[2][1] = m.A[2][1], A[2][2] = m.A[2][2], A[2][3] = m.A[2][3];
A[3][1] = m.A[3][1], A[3][2] = m.A[3][2], A[3][3] = m.A[3][3];
}
Matrix3 operator *(Matrix3 &m)
{
Matrix3 m_ret(0,0,0,0,0,0,0,0,0);
int i, j, k;
for (k = 1;k <= 3;++k)
for (i = 1;i <= 3;++i)
{
for (j = 1;j <= 3;++j)
m_ret.A[k][i] += (A[k][j] * m.A[j][i])%MOD;
m_ret.A[k][i] = m_ret.A[k][i] % MOD;
}
return m_ret;
}
};
Matrix3 pow(Matrix3 m, int p)
{
Matrix3 pr(1, 0, 0, 0, 1, 0, 0, 0, 1);
while (p != 1)
{
if ((p & 1) == 1)
{
pr = pr*m;
--p;
}
else
{
m = m*m;
p = p / 2;
}
}
return m*pr;
}
int main()
{
in >> T;
while (T--)
{
in >> X >> Y >> Z >> A >> B >> C >> N;
Matrix3 m(0, 0, C, 1, 0, B,0, 1, A);
m = pow(m, N - 2);
out << ((X*m.A[1][3])%MOD + (Y*m.A[2][3])%MOD + (Z*m.A[3][3])%MOD)%MOD<<'\n';
}
return 0;
}