#include <iostream>
#include <fstream>
using namespace std;
const int t2[24][2]={{1,3},
{1,4},
{1,5},
{1,6},
{2,3},
{2,4},
{2,5},
{2,6},
{3,1},
{3,2},
{3,5},
{3,6},
{4,1},
{4,2},
{4,5},
{4,6},
{5,1},
{5,2},
{5,3},
{5,4},
{6,1},
{6,2},
{6,3},
{6,4}};
const int t3[48][3]={{1,3,5},
{1,3,6},
{1,4,5},
{1,4,6},
{1,5,3},
{1,5,4},
{1,6,3},
{1,6,4},
{2,3,5},
{2,3,6},
{2,4,5},
{2,4,6},
{2,5,3},
{2,5,4},
{2,6,3},
{2,6,4},
{3,1,5},
{3,1,6},
{3,2,5},
{3,2,6},
{3,5,1},
{3,5,2},
{3,6,1},
{3,6,2},
{4,1,5},
{4,1,6},
{4,2,5},
{4,2,6},
{4,5,1},
{4,5,2},
{4,6,1},
{4,6,2},
{5,1,3},
{5,1,4},
{5,2,3},
{5,2,4},
{5,3,1},
{5,3,2},
{5,4,1},
{5,4,2},
{6,1,3},
{6,1,4},
{6,2,3},
{6,2,4},
{6,3,1},
{6,3,2},
{6,4,1},
{6,4,2}};
struct portal
{
long long x,y,t,c;
};
portal p[10];
ifstream in("portal3.in");
ofstream out("portal3.out");
inline long long modul(long long x)
{
if(x<0)
return -x;
return x;
}
int main()
{
long long t,j,i,m,n,time,time1,time2,time3,time4,minim;
in>>t;
for(j=1;j<=t;++j)
{
in>>n>>m;
in>>p[1].x>>p[1].y>>p[2].x>>p[2].y>>p[1].t;
p[2].t=p[1].t;
in>>p[3].x>>p[3].y>>p[4].x>>p[4].y>>p[3].t;
p[4].t=p[3].t;
in>>p[5].x>>p[5].y>>p[6].x>>p[6].y>>p[5].t;
p[6].t=p[5].t;
p[1].c=2;
p[2].c=1;
p[3].c=4;
p[4].c=3;
p[5].c=6;
p[6].c=5;
minim=m+n;
for(i=1;i<=6;++i)
{
time=p[i].x+p[i].y+p[i].t+n-p[p[i].c].x+m-p[p[i].c].y;
if(minim>time)
minim=time;
}
for(i=0;i<=23;++i)
{
time1=p[t2[i][0]].x+p[t2[i][0]].y+p[t2[i][0]].t;//distanta pana la primul portal
time2=modul(p[p[t2[i][0]].c].x-p[t2[i][1]].x)+modul(p[p[t2[i][0]].c].y-p[t2[i][1]].y)+p[t2[i][1]].t;//distanta intre corespondentul primului si al doilea portal
time3=n-p[p[t2[i][1]].c].x+m-p[p[t2[i][1]].c].y;//distanta de la corespondentul celui de al doilea portal pana la capat
time=time1+time2+time3;
if(minim>time)
minim=time;
}
for(i=0;i<48;++i)
{
time1=p[t3[i][0]].x+p[t3[i][0]].y+p[t3[i][0]].t;//distanta pana la primul portal
time2=modul(p[p[t3[i][0]].c].x-p[t3[i][1]].x)+modul(p[p[t3[i][0]].c].y-p[t3[i][1]].y)+p[t3[i][1]].t;//distanta intre corespondentul primului si al doilea portal
time3=modul(p[p[t3[i][1]].c].x-p[t3[i][2]].x)+modul(p[p[t3[i][1]].c].y-p[t3[i][2]].y)+p[t3[i][2]].t;//distanta intre corespondentul celui deal doilea si al treilea portal
time4=n-p[ p[ t3[i][2] ].c].x+m-p[p[t3[i][2]].c].y;//distanta de la corespondentul celui de al treilea portal pana la capat
time=time1+time2+time3+time4;
if(minim>time)
minim=time;
}
out<<minim<<"\n";
}
return 0;
}