#include<bits/stdc++.h>
using namespace std;
#define jntm 1e12
int n,m,q,t[201];
int f[201][201];
int u,v,www;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++) f[i][j]=jntm;
for(int i=1;i<=n;i++) cin>>t[i];
for(int i=1;i<=m;i++){
cin>>u>>v>>www;
f[u][v]=www;
f[v][u]=www;
}
cin>>q;
int x=0;
while(q--){
cin>>u>>v>>www;
if(t[u]>www||t[v]>www){
cout<<"-1\n";
continue;
}
while(t[x]<=www&&x<=n){
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
f[i][j]=min(f[i][j],f[i][x]+f[x][j]);
x++;
}
if(f[u][v]==jntm){
cout<<"-1\n";
continue;
}
cout<<f[u][v]<<"\n";
}
return 0;
}