#include<bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define pii pair<int,int>
#define pill pair<int,ll>
#define pll pair<ll,ll>
#define pb push_back
#define fi first
#define se second
#define ff fi.fi
#define fs fi.se
#define sf se.fi
#define ss se.se
#define MASK(x) (((1)<<(x))-1)
#define getbit(x,k) (((x)>>(k))&1)
using namespace std;
const int maxn=1e5+50,mod=1e9+7;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n,m,q,s,t,k;
int d[maxn];
vector<pii>eg[maxn];
bool bfs01(int R)
{
memset(d,0x3f,sizeof d);d[s]=0;
deque<int>dQ;
dQ.push_front(s);
while(dQ.size())
{
int u=dQ.front();dQ.pop_front();
for(pii v:eg[u])
{
int c=(v.se>R);
if(d[u]+c<d[v.fi])
{
d[v.fi]=d[u]+c;
if(c==0) dQ.push_front(v.fi);
else dQ.push_back(v.fi);
}
}
}
return d[t]<=k;
}
int main()
{
fastio
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int u,v,c;cin>>u>>v>>c;
eg[u].pb({v,c});eg[v].pb({u,c});
}
cin>>q;
while(q--)
{
cin>>s>>t>>k;
int l=0,r=1e9,mid,ans=0;
while(l<=r)
{
mid=(l+r)/2;
if(bfs01(mid)) ans=mid,r=mid-1;
else l=mid+1;
}
cout<<ans<<'\n';
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgZmFzdGlvIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBpbGwgcGFpcjxpbnQsbGw+CiNkZWZpbmUgcGxsIHBhaXI8bGwsbGw+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmZiBmaS5maQojZGVmaW5lIGZzIGZpLnNlCiNkZWZpbmUgc2Ygc2UuZmkKI2RlZmluZSBzcyBzZS5zZQojZGVmaW5lIE1BU0soeCkgKCgoMSk8PCh4KSktMSkKI2RlZmluZSBnZXRiaXQoeCxrKSAoKCh4KT4+KGspKSYxKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuPTFlNSs1MCxtb2Q9MWU5Kzc7CmNvbnN0IGxsIGluZj0weDNmM2YzZjNmM2YzZjNmM2Y7CgppbnQgbixtLHEscyx0LGs7CmludCBkW21heG5dOwp2ZWN0b3I8cGlpPmVnW21heG5dOwoKYm9vbCBiZnMwMShpbnQgUikKewogICAgbWVtc2V0KGQsMHgzZixzaXplb2YgZCk7ZFtzXT0wOwogICAgZGVxdWU8aW50PmRROwogICAgZFEucHVzaF9mcm9udChzKTsKICAgIHdoaWxlKGRRLnNpemUoKSkKICAgIHsKICAgICAgICBpbnQgdT1kUS5mcm9udCgpO2RRLnBvcF9mcm9udCgpOwogICAgICAgIGZvcihwaWkgdjplZ1t1XSkKICAgICAgICB7CiAgICAgICAgICAgIGludCBjPSh2LnNlPlIpOwogICAgICAgICAgICBpZihkW3VdK2M8ZFt2LmZpXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZFt2LmZpXT1kW3VdK2M7CiAgICAgICAgICAgICAgICBpZihjPT0wKSBkUS5wdXNoX2Zyb250KHYuZmkpOwogICAgICAgICAgICAgICAgZWxzZSBkUS5wdXNoX2JhY2sodi5maSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZFt0XTw9azsKfQppbnQgbWFpbigpCnsKICAgIGZhc3RpbwogICAgY2luPj5uPj5tOwogICAgZm9yKGludCBpPTE7aTw9bTtpKyspCiAgICB7CiAgICAgICAgaW50IHUsdixjO2Npbj4+dT4+dj4+YzsKICAgICAgICBlZ1t1XS5wYih7dixjfSk7ZWdbdl0ucGIoe3UsY30pOwogICAgfQogICAgY2luPj5xOwogICAgd2hpbGUocS0tKQogICAgewogICAgICAgIGNpbj4+cz4+dD4+azsKICAgICAgICBpbnQgbD0wLHI9MWU5LG1pZCxhbnM9MDsKICAgICAgICB3aGlsZShsPD1yKQogICAgICAgIHsKICAgICAgICAgICAgbWlkPShsK3IpLzI7CiAgICAgICAgICAgIGlmKGJmczAxKG1pZCkpIGFucz1taWQscj1taWQtMTsKICAgICAgICAgICAgZWxzZSBsPW1pZCsxOwogICAgICAgIH0KICAgICAgICBjb3V0PDxhbnM8PCdcbic7CiAgICB9Cn0K