#include using namespace std; using Int = long long; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a vector compress(vector v){ sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); return v; } template map dict(const vector &v){ map res; for(Int i=0;i<(Int)v.size();i++) res[v[i]]=i; return res; } template vector dijkstra(Int s,vector > > & G,T INF){ using P = pair; Int n=G.size(); vector d(n,INF); vector b(n,-1); priority_queue,greater

> q; d[s]=0; q.emplace(d[s],s); while(!q.empty()){ P p=q.top();q.pop(); Int v=p.second; if(d[v]d[v]+c){ d[u]=d[v]+c; b[u]=v; q.emplace(d[u],u); } } } return d; } //INSERT ABOVE HERE signed main(){ Int n,m,k,s,t; cin>>n>>m>>k>>s>>t; vector a(m),b(m),c(m); for(Int i=0;i>a[i]>>b[i]>>c[i]; using P = pair; vector

vp; for(Int i=0;i > G(sz); for(Int i=0;i=INF) ans=-1; cout<