N,M=map(int,input().split()) A=list(map(int,input().split())) edges=[] for i in range(N): edges.append([i,N+i,-A[i]]) for _ in range(M): a,b,c=map(int,input().split()) edges.append([N+a-1,b-1,c]) ans=[10**40 for _ in range(2*N)] ans[0]=0 for i in range(2*N+2): update=False for a,b,c in edges: if ans[b]>ans[a]+c: ans[b]=ans[a]+c update=True #print(ans) if not update: break if i==2*N+1: print('inf') exit(0) print(-ans[-1])