#include<bits/stdc++.h>
using namespace std;
const int maxn=100001;
int n,m,to[maxn],w[maxn],nxt[maxn],dis[maxn],sum[maxn],h[maxn],v[maxn];
int d,p,c,f,s,ans;
int cnt;
void add(int u,int v,int c){
to[++cnt]=v;
nxt[cnt]=h[u];
h[u]=cnt;
w[cnt]=c;
return;
}
bool spfa(){
memset(dis,-0x3f,sizeof dis);
dis[s]=d;
v[s]=1;
ans=d;
queue<int> q;
q.push(s);
while(!q.empty()){
int u=q.front();
q.pop();
v[u]=0;
for(int i=h[u];~i;i=nxt[i]){
int vt=to[i],wt=w[i];
if(dis[vt]<dis[u]+wt){
dis[vt]=dis[u]+wt;
ans=max(ans,dis[vt]);
if(!v[vt]){
sum[vt]=sum[u]+1;
if(sum[vt]>=n) return true;
v[vt]=1;
q.push(vt);
}
}
}
}
return false;
}
int main(){
cin>>d>>p>>c>>f>>s;
memset(h,-1,sizeof h);
for(int i=1;i<=p;i++){
int x,y;
cin>>x>>y;
add(x,y,d);
}
for(int i=1;i<=f;i++){
int x,y,z;
cin>>x>>y>>z;
add(x,y,d-z);
}
if(spfa()) cout<<-1;
else cout<<ans;
return 0;
}
输出是-1