N,M=map(int,input().split()) graph=[[] for x in range(N)] for m in range(M): a,b,c=map(int,input().split()) a-=1;b-=1 graph[a].append((b,c)) graph[b].append((a,c)) inf=1<<30 dp=[[-inf]*N for bit in range(1<<N)] for bit in range(1,1<<N): for x in range(N): if bit==1<<x: dp[bit][x]=0 break else: for y in range(N): if bit&1<<y: for x,c in graph[y]: if bit&1<<x: dp[bit][y]=max(dp[bit][y],dp[bit^1<<y][x]+c) ans=max(max(dp[bit]) for bit in range(1<<N)) print(ans)