#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(),(x).end() #define rep(i,m,n) for(int i = m;i < n;++i) #define pb push_back #define fore(i,a) for(auto &i:a) #define rrep(i,m,n) for(int i = m;i >= n;--i) #define INF INT_MAX/2 using namespace std; using ll = long long; using R = double; using Data = pair>; const ll MOD = 1e9 + 7; const ll inf = 1LL << 50; struct edge { ll from; ll to; ll cost; }; int main() { int n, m; cin >> n >> m; vectoritm[100]; rep(i, 0, m) { int i1, i2, s; cin >> i1 >> i2 >> s; itm[i].pb(i1); itm[i].pb(i2); itm[i].pb(s); } vectorper(n); rep(i, 0, n)per[i]=i; int ans = -101010; do { int temp = 0; rep(i, 0, m) { int p1 = itm[i][0]; int p2 = itm[i][1]; int a1, a2; rep(j, 0, n) { if (per[j] == p1)a1 = j; else if (per[j] == p2)a2 = j; } if (a1 < a2)temp += itm[i][2]; } ans = max(ans, temp); } while (next_permutation(all(per))); cout << ans << endl; return 0; }