rt
#include<iostream>
using namespace std;
int a[201][201];
const int inf=1e9;
int main(){
for(int i=1;i<=200;i++){
for(int j=1;j<=200;j++){
a[i][j]=inf;
}
}
int n,m,K,q;
cin>>n>>m>>K>>q;
while(m--){
int x,y,v;
cin>>x>>y>>v;
a[x][y]=min(a[x][y],v);
}
for(int k=1;k<=K;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][k]!=inf&&a[k][j]!=inf&&i!=j){
a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
}
}
}
}
int cnt=0;
int ans=0;
while(q--){
int x,y;
cin>>x>>y;
if(a[x][y]!=inf){
cnt++;
ans+=a[x][y];
}
}
cout<<cnt<<endl<<ans;
return 0;
}