#include <cstdio>
#include <algorithm>
using namespace std;
int T,N,M,x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,c;
int D[10][10],Dmin[10],v[10],cd[100];
int dist(int x1, int y1, int x2, int y2) {
return abs(x2-x1)+abs(y2-y1);
}
void BFS() {
int i,pi,ps,p;
pi=ps=1;
cd[pi]=0;
for(i=0;i<8;i++) { v[i]=0; Dmin[i]=2000000000; }
v[0]=1; Dmin[0]=0;
while(ps<=pi) {
p=cd[ps];
for(i=1;i<8;i++)
if(Dmin[p]+D[p][i]<Dmin[i]) {
Dmin[i]=Dmin[p]+D[p][i];
if(!v[i] && i!=7) {
cd[++pi]=i;
v[i]=1;
}
}
v[p]=0;
ps++;
}
}
int main() {
freopen("portal3.in","r",stdin);
freopen("portal3.out","w",stdout);
// 0 - start
// 7 - finish
for(scanf("%d",&T);T;T--) {
scanf("%d %d",&N,&M);
D[0][7]=N+M;
scanf("%d %d %d %d %d",&x1,&y1,&x2,&y2,&c);
D[0][1]=D[1][0]=x1+y1; D[0][2]=D[2][0]=x2+y2;
D[1][7]=dist(x1,y1,N,M); D[2][7]=dist(x2,y2,N,M);
D[1][2]=D[2][1]=c;
scanf("%d %d %d %d %d",&x3,&y3,&x4,&y4,&c);
D[0][3]=D[3][0]=x3+y3; D[0][4]=D[4][0]=x4+y4;
D[3][7]=dist(x3,y3,N,M); D[4][7]=dist(x4,y4,N,M);
D[3][4]=D[4][3]=c;
scanf("%d %d %d %d %d",&x5,&y5,&x6,&y6,&c);
D[0][5]=D[5][0]=x5+y5; D[0][6]=D[6][0]=x6+y6;
D[5][7]=dist(x5,y5,N,M); D[6][7]=dist(x6,y6,N,M);
D[5][6]=D[6][5]=c;
D[1][3]=D[3][1]=dist(x1,y1,x3,y3);
D[1][4]=D[4][1]=dist(x1,y1,x4,y4);
D[1][5]=D[5][1]=dist(x1,y1,x5,y5);
D[1][6]=D[6][1]=dist(x1,y1,x6,y6);
D[2][3]=D[3][2]=dist(x2,y2,x3,y3);
D[2][4]=D[4][2]=dist(x2,y2,x4,y4);
D[2][5]=D[5][2]=dist(x2,y2,x5,y5);
D[2][6]=D[6][2]=dist(x2,y2,x6,y6);
D[3][5]=D[5][3]=dist(x3,y3,x5,y5);
D[3][6]=D[6][3]=dist(x3,y3,x6,y6);
D[4][5]=D[5][4]=dist(x4,y4,x5,y5);
D[4][6]=D[6][4]=dist(x4,y4,x6,y6);
BFS();
printf("%d\n",Dmin[7]);
}
}