N,M = map(int,input().split()) G = [[] for _ in range(N)] for _ in range(M): a,b,s = map(int,input().split()) G[b].append((a,s)) dp = [0] * (1 << N) for bit in range(1,1 << N): for i in range(N): mask = 1 << i if bit & mask == 0: tmp = 0 for v,s in G[i]: if bit >> v & 1: tmp += s dp[bit | mask] = max(dp[bit | mask],dp[bit] + tmp) print(dp[-1])