#include <bits/stdc++.h>
#define pii pair<int, int>
#define vi vector<int>
#define x first
#define y second
#define int long long
#define uf(i, l, r) for(int i = l; i <= r; ++i)
#define df(i, l, r) for(int i = l; i >= r; --i)
#define ios ios::sync_with_stdio(0)\
, cin.tie(0), cout.tie(0)
using namespace std;
const int INF = 5e9 + 5;
const int N = 1505;
int n, m;
int mp[N][N] = {{0}};
int ru[N] = {0};
int num[N] = {0};
signed main() {
cin >> n >> m;
uf(i, 1, n) num[i] = -INF;
uf(i, 1, n)
uf(j, 1, n)
mp[i][j] = -INF;
int u, v, ww;
while(m--) {
cin >> u >> v >> ww;
mp[u][v] = max(mp[u][v], ww);
ru[v]++;
}
queue<int> q;
q.push(1);
num[1] = 0;
while(q.size()) {
int t = q.front();
q.pop();
uf(i, 1, n) {
if(mp[t][i] != -INF) {
ru[i]--;
num[i] = max(num[i], num[t] + mp[t][i]);
if(!ru[i]) q.push(i);
}
}
}
if(num[n] == -INF) num[n] = -1;
cout << num[n];
}