#include<bits/stdc++.h>
using namespace std;
const int N = 10005;
vector <int> p[N];
queue <int> q;
int n, m, a[N][N], vis[N], ans, k;
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; ++i) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
p[u].push_back(v);
a[u][v] = w;
}
q.push(1);
while (!q.empty()) {
int u = q.front();
q.pop();
if (u == n)
k = 1;
for (int i = 0; i < p[u].size(); ++i) {
int ny = p[u][i];
if (!vis[ny]) {
vis[ny] = vis[u] + a[u][ny];
q.push(ny);
}
}
}
if (!k) printf("-1");
else printf("%d", vis[n]);
return 0;
}
45pts。。。