using System; namespace yukicoder { class _090 { static int[] seq; static int d; static int max; static int[,] mi; static void Main() { int[] nm = Array.ConvertAll(Console.ReadLine().Split(' ') , x => int.Parse(x)); int n = nm[0]; int m = nm[1]; mi = new int[10,10]; for (int i = 0; i < m; i++) { string[] sc = Console.ReadLine().Split(' '); mi[int.Parse(sc[0]), int.Parse(sc[1])] = int.Parse(sc[2]); } max = 0; seq = new int[n]; for (int i = 0; i < n; i++) { seq[i] = i; } for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { max += mi[i, j]; } } Console.WriteLine(max + rec(n)); } static int rec(int n) { int ret = 0; int l = n == 2 ? n - 1 : n; for (int i = 0; i < l; i++) { if (n > 2) { ret = Math.Max(ret, rec(n - 1)); } if (n != 2 && i == l - 1) { for (int j = n - 1; j > 1; j--) { change(j); } } else { change(n); ret = Math.Max(ret, d); } } return ret; } static void change(int n) { int os = mi[seq[n - 2], seq[n - 1]]; int tmp = seq[n - 1]; seq[n - 1] = seq[n - 2]; seq[n - 2] = tmp; int ns = mi[seq[n - 2], seq[n - 1]]; d += -os + ns; } } }