重边也判了
#include<iostream>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
vector<int>s[60010];
queue<int>q;
int n,m,f[60010],outd[60010],ind[60010],d[2500][2500],x,y,w;
int main(){
cin>>n>>m;
for (int i=1;i<=m;++i){
cin>>x>>y>>w;
s[x].push_back(y);
d[x][y]=max(d[x][y],w);
outd[x]++;
ind[y]++;
}
memset (f,-1,sizeof(f));
f[1]=0;
q.push(1);
while (!q.empty()){
int x=q.front();
q.pop();
for (int i=0;i<s[x].size();++i){
int y=s[x][i];
f[y]=max(f[x]+d[x][y],f[y]);
ind[y]--;
if (ind[y]==0){
q.push(y);
}
}
}
cout<<f[n];
return 0;
}