#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int i , j , k , n , m , t , x[10] , y[10];
int c1 , c2 , c3;
long long dist[10][10];
inline int manhattan ( int i , int j ) {
return abs(x[i] - x[j]) + abs(y[i] - y[j]);
}
int main()
{
freopen("portal3.in","r",stdin);
freopen("portal3.out","w",stdout);
scanf("%d",&t);
for ( ; t-- ; ) {
scanf("%d %d",&n,&m);
x[0] = y[0] = 0;
x[7] = n , y[7] = m;
scanf("%d %d %d %d %d",&x[1],&y[1],&x[2],&y[2],&c1);
scanf("%d %d %d %d %d",&x[3],&y[3],&x[4],&y[4],&c2);
scanf("%d %d %d %d %d",&x[5],&y[5],&x[6],&y[6],&c3);
for( i = 0 ; i <= 7 ; ++i )
for ( j = 0 ; j <= 7 ; ++j )
dist[i][j] = dist[j][i] = manhattan ( i , j );
dist[1][2] = dist[2][1] = min ( 1LL * c1 , dist[1][2]);
dist[3][4] = dist[4][3] = min ( 1LL * c2 , dist[3][4]);
dist[5][6] = dist[6][5] = min ( 1LL * c3 , dist[5][6]);
for ( k = 0 ; k <= 7 ; ++k )
for ( i = 0 ; i <= 7 ; ++i )
for ( j = 0 ; j <= 7 ; ++j )
dist[i][j] = min ( dist[i][j] , dist[i][k] + dist[k][j] );
printf("%lld\n",dist[0][7]);
}
return 0;
}