#include<bits/stdc++.h>
#pragma GCC optimize(2)
#define int long long
using namespace std;
int nn,mm,num;
int c[1000001];
int d[1000001];
int e[1000001];
int f[7001][7001];
signed main(){
ios::sync_with_stdio;
cin.tie(0);
cout.tie(0);
cin>>nn>>mm>>num;
memset(f,100000000,sizeof f);
for(int i=1;i<=mm;i++){
int a,b,t;
cin>>a>>b>>t;
f[a][b]=min(f[a][b],t);
f[b][a]=f[a][b];
}
int tot=0;
for(int i=1;i<=num;i++){
cin>>c[i]>>d[i];
e[tot++]=c[i];
}
for (int k = 1; k <= nn; k++) {
for (int x = 1; x <= nn; x++) {
for (int y = 1; y <= nn; y++) {
if(x==y)f[x][y]=0;
f[x][y] = min(f[x][y], f[x][k] + f[k][y]);
}
}
}
for(int i=1;i<=nn-1;i++){
int ans1=f[i][nn];
int ans2=1e9;
int ans3=1e9;
int p=0;
for(int j=0;j<=tot-1;j++){
if(f[i][e[j]]+f[e[j]][nn]<ans2){
ans2=f[i][e[j]]+f[e[j]][nn];
p=e[j];
ans3=min(ans3,ans2-ans1);
}
}
if(ans3<=d[p]){
cout<<"1"<<endl;
}else{
cout<<"0"<<endl;
}
}
return 0;
}