#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
using namespace std;
int n;
long long INF = 1e18;
long long L1,L2,L3,L4,C1,C2,C3,C4;
long long D[110][110];
long long f[110];
long long ABS(long long x){return x>0?x:-x;}
long long cost(long long dis){
if(dis>0&&dis<=L1)return C1;
if(dis<=L2)return C2;
if(dis<=L3)return C3;
if(dis<=L4)return C4;
return INF;
}
void floyd(){
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(D[i][j]>D[i][k]+D[k][j])
D[i][j]=D[i][k]+D[k][j];
}
int main(){
// freopen("1690.txt","r",stdin);
int k=1,t;
scanf("%d",&t);
while(k<=t){
int m,a,b;
cout<<"Case "<<k++<<":"<<endl;
cin>>L1>>L2>>L3>>L4;
cin>>C1>>C2>>C3>>C4;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
D[i][j]=INF;
for(int i=1;i<=n;i++)
cin>>f[i];
for(int i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
D[i][j]=D[j][i]=cost(ABS(f[i]-f[j]));
floyd();
for(int i=1;i<=m;i++){
cin>>a>>b;
if(D[a][b]!=INF)
cout<<"The minimum cost between station "<<a<<" and station "<<b<<" is "<<D[a][b]<<"."<<endl;
else
cout <<"Station "<< a <<" and station "<< b <<" are not attainable."<<endl;
}
}
return 0;
}