#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[1501],b[50001],w[1501][50001];
int ans[1501];
queue<int>q;
int in[1501],out[1501];
vector<int>g[1501];
int main() {
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a[i]>>b[i]>>w[a[i]][b[i]];
g[a[i]].push_back(b[i]);
++in[b[i]],++out[a[i]];
}
for(int i=1;i<=n;i++){
if(in[i]==0){
q.push(i);
ans[i]=0;
}
}
while(q.size()){
int x=q.front();
q.pop();
for(int y:g[x]){
--in[y];
ans[y]=max(w[x][y]+ans[x],ans[y]);
if(in[y]==0)q.push(y);
}
}
for(int i=1;i<=n;i++){
if(out[i]==0){
if(ans[i]==0){
cout<<-1;
}
else cout<<ans[i];
return 0;
}
}
}