RT
#include<bits/stdc++.h>
using namespace std;
struct node{
int u,v,w;
}e[999];
int qq,pp,cc,ff,uu[3105],sth[305],sto[305],as=0;
bool edda[305];
void d3(int u,int v,int w)
{
e[as++].u=v;
e[as].v=w;
e[as].w=sto[u];
sto[u]=as;
}
bool d2()
{
memset(uu,0x3f,sizeof(uu));
queue<int>q;
q.push(0);
uu[0]=0;
edda[0]=1;
while(!q.empty())
{
int u=q.front();
q.pop();
edda[u]=0;
sth[u]++;
if(sth[u]>cc+1) return 1;
for(int i=sto[u];i;i=e[i].w)
{
int v=e[i].u;
if(uu[v]>uu[u]+e[i].v)
{
uu[v]=uu[u]+e[i].v;
if(!edda[v]) edda[v]=1,q.push(v);
}
}
}
return 0;
}
int main()
{
cin>>qq>>pp>>cc>>ff;
int u,v,w;
for(int i=1;i<=pp;i++) cin>>u>>v,d3(u,v,-qq);
for(int i=1;i<=ff;i++) cin>>u>>v>>w,d3(u,v,-qq);
for(int i=1;i<=cc;i++) d3(0,i,-qq);
if(d2()) cout<<"orz";
else
{
int ans=0;
for(int i=1;i<=cc;i++) ans=min(ans,uu[i]);
cout<<-ans;
}
return 0;
}