#include <bits/stdc++.h>
using namespace std;

int n, m;
long long d[1001];
vector<tuple<int,int,int> > edges;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n >> m;
	for(int i = 0, u, v, w; i < m; i++) {
		cin >> u >> v >> w;
		edges.emplace_back(u, v, -w);
	}
	if(n > 1) fill(d+2, d+n+1, 1e18);
	for(int t = 1; t < n; t++) for(auto p: edges) {
		int u, v, w;
		tie(u, v, w) = p;
		if(d[u]+w < d[v]) d[v] = d[u]+w;
	}
	long long d1 = d[n];
	for(int t = 1; t < n; t++) for(auto p: edges) {
		int u, v, w;
		tie(u, v, w) = p;
		if(d[u]+w < d[v]) d[v] = d[u]+w;
	}
	if(d1 == d[n]) cout << -d[n];
	else cout << "inf";
}
