#include <fstream>
using namespace std;
const char InFile[]="portal3.in";
const char OutFile[]="portal3.out";
const int MaxN=8;
ifstream fin(InFile);
ofstream fout(OutFile);
int T,N,M,X1[3],Y1[3],X2[3],Y2[3],C[3];
long long sum,sol;
inline long long dist(int X1, int Y1, int X2, int Y2)
{
return abs(X2-X1)+abs(Y2-Y1);
}
bool ok;
int k=-1,v[3],b[3],j,PX1[3],PY1[3],PX2[3],PY2[3],PC[3];
void back3()
{
++k;
if(k==3)
{
for(j=0;j<3;++j)
{
if(b[j]==0)
{
PX1[j]=X1[v[j]];
PY1[j]=Y1[v[j]];
PX2[j]=X2[v[j]];
PY2[j]=Y2[v[j]];
}
else
{
PX1[j]=X2[v[j]];
PY1[j]=Y2[v[j]];
PX2[j]=X1[v[j]];
PY2[j]=Y1[v[j]];
}
PC[j]=C[v[j]];
}
sum=dist(0,0,PX1[0],PY1[0])+PC[0]+dist(PX2[0],PY2[0],PX1[1],PY1[1])+PC[1]+dist(PX2[1],PY2[1],PX1[2],PY1[2])+PC[2]+dist(PX2[2],PX2[2],N,M);
sol=min(sol,sum);
}
else
{
for(register int i=0;i<3;++i)
{
ok=true;
for(j=0;j<k;++j)
{
if(v[j]==i)
{
ok=false;
break;
}
}
if(ok)
{
v[k]=i;
b[k]=0;
back3();
b[k]=1;
back3();
}
}
}
--k;
}
void back2()
{
++k;
if(k==2)
{
for(j=0;j<2;++j)
{
if(b[j]==0)
{
PX1[j]=X1[v[j]];
PY1[j]=Y1[v[j]];
PX2[j]=X2[v[j]];
PY2[j]=Y2[v[j]];
}
else
{
PX1[j]=X2[v[j]];
PY1[j]=Y2[v[j]];
PX2[j]=X1[v[j]];
PY2[j]=Y1[v[j]];
}
PC[j]=C[v[j]];
}
sum=dist(0,0,PX1[0],PY1[0])+PC[0]+dist(PX2[0],PY2[0],PX1[1],PY1[1])+PC[1]+dist(PX2[1],PY2[1],N,M);
sol=min(sol,sum);
}
else
{
for(register int i=0;i<3;++i)
{
ok=true;
for(j=0;j<k;++j)
{
if(v[j]==i)
{
ok=false;
break;
}
}
if(ok)
{
v[k]=i;
b[k]=0;
back2();
b[k]=1;
back2();
}
}
}
--k;
}
void back1()
{
++k;
if(k==1)
{
for(j=0;j<1;++j)
{
if(b[j]==0)
{
PX1[j]=X1[v[j]];
PY1[j]=Y1[v[j]];
PX2[j]=X2[v[j]];
PY2[j]=Y2[v[j]];
}
else
{
PX1[j]=X2[v[j]];
PY1[j]=Y2[v[j]];
PX2[j]=X1[v[j]];
PY2[j]=Y1[v[j]];
}
PC[j]=C[v[j]];
}
sum=dist(0,0,PX1[0],PY1[0])+PC[0]+dist(PX2[0],PY2[0],N,M);
sol=min(sol,sum);
}
else
{
for(register int i=0;i<3;++i)
{
ok=true;
for(j=0;j<k;++j)
{
if(v[j]==i)
{
ok=false;
break;
}
}
if(ok)
{
v[k]=i;
b[k]=0;
back1();
b[k]=1;
back1();
}
}
}
--k;
}
int main()
{
fin>>T;
for(register int i=1;i<=T;++i)
{
fin>>N>>M;
for(register int j=0;j<3;++j)
{
fin>>X1[j]>>Y1[j]>>X2[j]>>Y2[j]>>C[j];
}
sol=dist(0,0,N,M);
back3();
back2();
back1();
fout<<sol<<"\n";
}
fin.close();
fout.close();
return 0;
}