#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn =1e5+5;
const int inf=1e9;
int n,m,l;
int e[301][301],ans[301][301];

int main(){
    ios::sync_with_stdio(false);
    memset(e,0x3f,sizeof e);
    memset(ans,0x3f,sizeof ans);
    cin>>n>>m>>l;
    for(int i=1;i<=m;i++){
        int a,b,w;
        cin>>a>>b>>w;
        e[a][b]=w;e[b][a]=w;
    }
    for(int i=1;i<=n;i++)e[i][i]=0;

    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            e[i][j]=min(e[i][j],e[i][k]+e[k][j]);
    }

    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(e[i][j]<=l)ans[i][j]=1;

     for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                ans[i][j]=min(ans[i][j],ans[i][k]+ans[k][j]);


    int Q;
    cin>>Q;
    while(Q--){
        int s,t;
        cin>>s>>t;
        if(ans[s][t]>2*n)cout<<-1<<endl;
        else cout<<ans[s][t]-1<<endl;
    }
    return 0;
}
