#include <fstream>
#include <bitset>
using namespace std;
ifstream f("portal3.in");
ofstream g("portal3.out");
struct pt {
int x;
int y;
};
int t,ti,n,m,c12,c34,c56;
pt p1,p2,p3,p4,p5,p6;
bitset <20> fr;
int d13,d14,d15,d16,d23,d24,d25,d26,d35,d36,d45,d46;
int portal1(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56);
int portal2(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56);
int portal3(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56);
int portal4(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56);
int portal5(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56);
int portal6(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56);
int costminim(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56) {
int cost;
cost=n+m;
int v;
d13=max(p1.x+p1.y,p3.x+p3.y)-min(p1.x+p1.y,p3.x+p3.y);
d14=max(p1.x+p1.y,p4.x+p4.y)-min(p1.x+p1.y,p4.x+p4.y);
d15=max(p1.x+p1.y,p5.x+p5.y)-min(p1.x+p1.y,p5.x+p5.y);
d16=max(p1.x+p1.y,p6.x+p6.y)-min(p1.x+p1.y,p6.x+p6.y);
d23=max(p2.x+p2.y,p3.x+p3.y)-min(p2.x+p2.y,p3.x+p3.y);
d24=max(p2.x+p2.y,p4.x+p4.y)-min(p2.x+p2.y,p4.x+p4.y);
d25=max(p2.x+p2.y,p5.x+p5.y)-min(p2.x+p2.y,p5.x+p5.y);
d26=max(p2.x+p2.y,p6.x+p6.y)-min(p2.x+p2.y,p6.x+p6.y);
d35=max(p3.x+p3.y,p5.x+p5.y)-min(p3.x+p3.y,p5.x+p5.y);
d36=max(p3.x+p3.y,p6.x+p6.y)-min(p3.x+p3.y,p6.x+p6.y);
d45=max(p4.x+p4.y,p5.x+p5.y)-min(p4.x+p4.y,p5.x+p5.y);
d46=max(p4.x+p4.y,p6.x+p6.y)-min(p4.x+p4.y,p6.x+p6.y);
fr[1]=fr[2]=1;
v=p1.x+p1.y+portal2(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
v=p2.x+p2.y+portal1(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
fr[1]=fr[2]=0;fr[3]=fr[4]=1;
v=p3.x+p3.y+portal4(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
v=p4.x+p4.y+portal3(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
fr[3]=fr[4]=0;fr[5]=fr[6]=1;
v=p5.x+p5.y+portal6(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
v=p6.x+p6.y+portal5(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
fr[5]=fr[6]=0;
return cost;
}
int main () {
f >> t;
for (ti=1;ti<=t;ti++) {
f >> n >> m;
f >> p1.x >> p1.y >> p2.x >> p2.y >> c12;
f >> p3.x >> p3.y >> p4.x >> p4.y >> c34;
f >> p5.x >> p5.y >> p6.x >> p6.y >> c56;
g << costminim(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56) << '\n';
}
f.close();g.close();
return 0;
}
int portal1(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56) {
int cost;
cost=n+m-p1.x-p1.y;
int v;
fr[1]=fr[2]=1;
if (fr[3]==0 && fr[4]==0) {
v=d13+portal4(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
v=d14+p4.x+p4.y+portal3(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
}
if (fr[5]==0 && fr[6]==0) {
v=d15+portal6(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
v=d16+portal5(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
}
fr[1]=fr[2]=0;
return cost;
}
int portal2(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56) {
int cost;
cost=n+m-p2.x-p2.y;
int v;
fr[1]=fr[2]=1;
if (fr[3]==0 && fr[4]==0) {
v=d23+portal4(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
v=d24+portal3(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
}
if (fr[5]==0 && fr[6]==0) {
v=d25+portal6(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
v=d26+portal5(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
}
fr[1]=fr[2]=0;
return cost;
}
int portal3(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56) {
int cost;
cost=n+m-p3.x-p3.y;
int v;
fr[3]=fr[4]=1;
if (fr[1]==0 && fr[2]==0) {
v=d13+portal2(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
v=d23+portal1(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
}
if (fr[5]==0 && fr[6]==0) {
v=d35+portal6(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
v=d36+portal5(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
}
fr[3]=fr[4]=0;
return cost;
}
int portal4(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56) {
int cost;
cost=n+m-p4.x-p4.y;
int v;
fr[3]=fr[4]=1;
if (fr[1]==0 && fr[2]==0) {
v=d14+portal2(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
v=d24+portal1(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
}
if (fr[5]==0 && fr[6]==0) {
v=d45+portal6(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
v=d46+portal5(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c56;
cost=min(cost,v);
}
fr[3]=fr[4]=0;
return cost;
}
int portal5(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56) {
int cost;
cost=n+m-p5.x-p5.y;
int v;
fr[5]=fr[6]=1;
if (fr[1]==0 && fr[2]==0) {
v=d15+portal2(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
v=d25+portal1(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
}
if (fr[3]==0 && fr[4]==0) {
v=d35+portal4(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
v=d45+portal3(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
}
fr[5]=fr[6]=0;
return cost;
}
int portal6(int n,int m,pt p1,pt p2,pt p3,pt p4,pt p5,pt p6,int c12,int c34,int c56) {
int cost;
cost=n+m-p6.x-p6.y;
int v;
fr[5]=fr[6]=1;
if (fr[1]==0 && fr[2]==0) {
v=d16+portal2(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
v=d26+portal1(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c12;
cost=min(cost,v);
}
if (fr[3]==0 && fr[4]==0) {
v=d36+portal4(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
v=d46+portal3(n,m,p1,p2,p3,p4,p5,p6,c12,c34,c56)+c34;
cost=min(cost,v);
}
return cost;
fr[5]=fr[6]=0;
}