def read_data(): N, M = map(int, input().split()) scores = [[0] * N for n in range(N)] for m in range(M): a, b, c = map(int, input().split()) scores[a][b] = c return N, scores def solve(N, scores): dp = [0] * (1 << N) for i in range(1, 1 << N): dp[i] = find_max(i, dp, scores, N) return dp[-1] def find_max(used, dp, scores, N): record = 0 for j in range(N): if used & (1< record: record = score return record N, scores = read_data() print(solve(N, scores))