#include <bits/stdc++.h>
using namespace std;
int n,m,q,a[205],f[205][205],x,y,t;
void aaa(int k){
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(f[i][k]+f[k][j]<f[i][j])
f[i][j]=f[j][i]=f[i][k]+f[k][j];
return;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)
scanf("%d",a+i);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
f[i][j]=1e9;
}
int s1,s2,s3;
for(int i=0;i<m;i++){
cin>>s1>>s2>>s3;
f[s1][s2]=f[s2][s1]=s3;
}
cin>>q;
for(int i=1;i<=q;i++){
int step=0;
cin>>x>>y>>t;
while(a[step]<=t&&step<n){
aaa(step);
step++;
}
if(a[x]>t||a[y]>t) cout<<-1<<endl;
else{
if(f[x][y]==1e9) cout<<-1<<endl;
else cout<<f[x][y]<<endl;
}
}
return 0;
}