#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=305;
int n,m1,m2,K;
vector<pair<int,int> >edge[N];
int dis[N],neg[N];
bool inq[N];
bool spfa(int s)
{
memset(dis,0xc f,sizeof dis);
memset(inq,0,sizeof inq);
memset(neg,0,sizeof neg);
queue<int>q;
q.emplace(s);
inq[s]=1;
dis[s]=0;
while(!q.empty())
{
int u=q.front();q.pop();
inq[u]=0;
for(auto &[v,w]:edge[u])
{
if(dis[u]+w>dis[v])
{
dis[v]=dis[u]+w;
neg[v]=neg[u]+1;
if(neg[v]>=n)
return 1;
if(!inq[v])
{
q.emplace(v);
inq[v]=1;
}
}
}
}
return 0;
}
signed main()
{
cin>>K>>m1>>n>>m2;
for(int i=1;i<=m1;++i)
{
int u,v;
cin>>u>>v;
edge[u].emplace_back(v,K);
}
for(int i=1;i<=m2;++i)
{
int u,v,w;
cin>>u>>v>>w;
edge[u].emplace_back(v,K-w);
}
for(int i=1;i<=n;++i)
edge[0].emplace_back(i,K);
if(spfa(0))
cout<<"orz";
else
{
int ans=0;
for(int i=1;i<=n;++i)
ans=max(ans,dis[i]);
cout<<ans;
}
}