#include <bits/stdc++.h>
using namespace std;
#define fi first
#define endl "\n"
#define se second
#define ll long long
#define inf 0x3f3f3f3f
#define fast    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int N = 1e5+5;
const ll mod =   1e9+7;
int n,m,l;ll dis1[305][305],dis2[305][305];
int main()
{  fast
cin>>n>>m>>l;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(i!=j)
dis1[i][j]=dis2[i][j]=inf;
for(int i=0;i<m;i++){
	int x,y,z;
	cin>>x>>y>>z;x--;y--;
	dis1[x][y]=dis1[y][x]=z;
}
for(int k=0;k<n;k++)
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
dis1[i][j]=min(dis1[i][j],dis1[i][k]+dis1[k][j]);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
	if(dis1[i][j]<=l)
	dis2[i][j]=1;
}
for(int k=0;k<n;k++)
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
dis2[i][j]=min(dis2[i][j],dis2[i][k]+dis2[k][j]);
int q;
cin>>q;
while(q--){
	int x,y;
	cin>>x>>y;x--;y--;
	if(dis2[x][y]==inf)
	cout<<"-1\n";
	else
	cout<<dis2[x][y]-1<<endl;
}
}