#include <bits/stdc++.h>
#define int long long
using namespace std;
struct stu
{
int v , w;
};
vector<stu> G[2010];
queue<int> q;
int n , m , deg[2010] , a[2010];
bool toposort()
{
memset(a , -0x3f , sizeof(a));
a[1] = 0;
for(int i = 1; i <= n; i++)
{
if(!deg[i]) q.push(i);
}
int cnt = 0;
while(!q.empty())
{
int u = q.front();
q.pop();
cnt ++;
for(stu i : G[u])
{
int v = i.v , w = i.w;
a[v] = max(a[v] , a[u] + w);
if(-- deg[v] == 0) q.push(v);
}
}
return n == cnt;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for(int i = 1; i <= m; i++)
{
int u , v , w;
cin >> u >> v >> w;
G[u].push_back({v , w});
deg[v] ++;
}
if(!toposort()) cout << -1 << endl;
else cout << a[n] << endl;
return 0;
}