#include <cstdio>
#include <algorithm>
using namespace std;
int N, M, T, X1, X2, X3, Y1, Y2, Y3, X4, Y4, X5, Y5, X6, Y6, C1, C2, C3;
int i, P[10], x, y;
long long best, R;
inline int modul(int a) { return a>0?a:-a; }
int main()
{
freopen("portal3.in","r",stdin);
freopen("portal3.out","w",stdout);
scanf("%d", &T);
while (T--)
{
scanf("%d %d", &N, &M);
scanf("%d %d %d %d %d", &X1, &Y1, &X2, &Y2, &C1);
scanf("%d %d %d %d %d", &X3, &Y3, &X4, &Y4, &C2);
scanf("%d %d %d %d %d", &X5, &Y5, &X6, &Y6, &C3);
for (i=1; i<=8; ++i)
P[i] = i;
best = (long long)C1+C2+C3+N+M;
do
{
R = 0;
x = y = 0;
for (i=2; i<=8; ++i)
{
switch (P[i])
{
case 2:
R += (long long)modul(x-X1) + modul(y-Y1) + C1;
x = X2; y = Y2;
break;
case 3:
R += (long long)modul(x-X3) + modul(y-Y3) + C2;
x = X4; y = Y4;
break;
case 4:
R += (long long)modul(x-X5) + modul(y-Y5) + C3;
x = X6; y = Y6;
break;
case 5:
R += (long long)modul(x-X2) + modul(y-Y2) + C1;
x = X1; y = Y1;
break;
case 6:
R += (long long)modul(x-X4) + modul(y-Y4) + C2;
x = X3; y = Y3;
break;
case 7:
R += (long long)modul(x-X6) + modul(y-Y6) + C3;
x = X5; y = Y5;
break;
case 8:
R += (long long)modul(x-N) + modul(y-M);
i = 9;
break;
}
if (R>best) break;
}
if (R < best) best = R;
}
while (next_permutation(P+2, P+9));
printf("%lld\n", best);
}
return 0;
}