N, M = map(int, input().split()) G = [[] for _ in range(N)] for _ in range(M): a, b, c = map(int, input().split()) a -= 1 b -= 1 G[a].append((b, c)) G[b].append((a, c)) dp = [[0] * (1 << N) for _ in range(N)] for b in range(1, 1 << N): for v in range(N): if b >> v & 1: dp_vb = dp[v][b] for x, c in G[v]: if b >> x & 1: continue dp[x][b | (1 << x)] = max(dp[x][b | (1 << x)], dp_vb + c) ans = max(max(dpx) for dpx in dp) print(ans)