N,M = map(int,input().split()) A = list(map(int,input().split())) INF = float('inf') cost = [[-INF] * N for _ in range(N)] for i in range(N): cost[i][i] = 0 for _ in range(M): a,b,c = map(int,input().split()) a -= 1 b -= 1 cost[a][b] = A[b] - c # cost[i][j]: 頂点v_iから頂点v_jへ到達するための辺コストの和 for k in range(N): for i in range(N): for j in range(N): if cost[i][k]!=-INF and cost[k][j]!=-INF: cost[i][j] = max(cost[i][j], cost[i][k] + cost[k][j]) for i in range(N): if cost[i][i] > 0 and cost[i][-1] != -INF: print("inf") exit() print(A[0]+cost[0][-1])