# include <cstdio>
int t, n, m, x[7], y[7],c[4];
int dist ( int x1, int y1, int x2, int y2)
{
int a, b;
a = x1 - x2;
if (a < 0)
a = 0 - a;
b = y1 - y2;
if (b < 0)
b = 0 - b;
return a + b;
}
int mai_aproape (int p, int x1, int x2)
{
if ( dist (x1, x2, x[2*p-1], y[2*p-1]) < dist( x1, x2, x[2*p], y[2*p]))
return 2*p - 1;
return 2*p;
}
int cost1 ( int p, int cx, int cy, int fx, int fy)
{
int pr, ult;
pr = mai_aproape (p, cx, cy);
if (pr%2 == 0)
ult = pr -1;
else
ult = pr +1;
return dist(x[pr],y[pr], cx, cy) + c[p] + dist(fx, fy, x[ult], y[ult]);
}
int cost2 ( int p1, int p2, int cx, int cy, int fx, int fy)
{
int pr, ult;
pr = mai_aproape (p1, cx, cy);
if (pr%2 == 0)
ult = pr -1;
else
ult = pr +1;
return dist(cx, cy, x[pr], y[pr]) + c[p1] + cost1( p2, x[ult], y[ult], fx, fy);
}
int cost3 ( int p1, int p2, int p3, int cx, int cy, int fx, int fy)
{
int pr, ult;
pr = mai_aproape (p1, cx, cy);
if (pr%2 == 0)
ult = pr -1;
else
ult = pr +1;
return dist(cx, cy, x[pr], y[pr]) + c[p1] + cost2( p2, p3, x[ult], y[ult], fx, fy);
}
int main()
{
freopen ("portal3.in","r",stdin);
freopen ("portal3.out","w", stdout);
int curent, mi;
scanf ("%d", &t);
//printf("%d", t);
for (int i =1; i<=t; i++)
{
scanf ("%d%d", &n,&m);
for (int j=1; j<=3; j++)
scanf ("%d%d%d%d%d", &x[2*j - 1], &y[j*2 - 1], &x[2*j], &y[2*j], &c[j]);
//printf("**");
mi = dist(0, 0, n, m);
for (int j= 1; j<=3; j++)
{
curent = cost1(j, 0, 0, n, m);
if (curent < mi)
mi = curent;
}
for (int a=1; a<=3; a++)
for (int b=1; b<=3; b++)
if (a != b)
{
curent = cost2(a, b, 0, 0, n, m);
if (curent < mi)
mi = curent;
}
for (int a=1; a<=3; a++)
for (int b=1; b<=3; b++)
if (a !=b)
for (int c=1; c<= 3; c++)
if (a !=c && b != c)
{
curent = cost3(a, b, c, 0, 0, n, m);
if (curent < mi)
mi = curent;
}
printf("%d\n", mi);
}
return 0;
}