#include<cstdio>
#include<cstring>
using namespace std;
int d[1010][1010];
int main() {
int N,M;
scanf("%d%d",&N,&M);
for(int i=0,bin=0;i<N;i++){
scanf("%d",&bin);
}
for(register int i=1;i<=N;i++)
for(register int j=1;j<=N;j++)
d[i][j]=1e9;
for(int i=1;i<=N;i++) d[i][i]=false;
for(int k=1;k<=M;k++){
int i,j,q;
scanf("%d%d%d",&i,&j,&q);
d[i][j]=q;
d[j][i]=q;
}
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 Q;
scanf("%d",&Q);
for(int i=1;i<=Q;i++){
int x,y,t;
scanf("%d%d%d",&x,&y,&t);
if(d[x][y]==1e9) puts("-1");
else printf("%d\n",d[x][y]);
}
return 0;
}