program amenzi;
var n,m,k,p,i,x,y,z,j,h:longint;
d:array [1..150,1..150] of longint;
a,b:array [1..150,0..3500] of longint;
begin
assign(input,'amenzi.in');
reset(input);
assign(output,'amenzi.out');
rewrite(output);
readln(n,m,k,p);
for i:=1 to m do
begin
readln(x,y,z);
d[x,y]:=z;
d[y,x]:=z;
end;
for i:=1 to n do d[i,i]:=1;
for i:=1 to k do
begin
readln(x,y,z);
b[x,y]:=z;
end;
for i:=0 to 3500 do
for j:=1 to n do a[j,i]:=-1;
a[1,0]:=0;
for i:=1 to 3500 do
begin
for j:=1 to n do
begin
for h:=1 to n do
begin
if d[j,h]>0 then
if (i-d[j,h]>=0)then
if (a[h,i-d[j,h]]<>-1) then
if a[h,i-d[j,h]]>=a[j,i] then a[j,i]:=a[h,i-d[j,h]];
end;
if a[j,i]<>-1 then a[j,i]:=a[j,i]+b[j,i];
end;
end;
for i:=1 to p do
begin
readln(x,y);
writeln(a[x,y]);
end;
close(output);
end.