#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,n) for(int i = 0; i < n; i++) #define FOR(i,j,n) for(int i = j; i < n; i++) #define RFOR(i,j,n) for(int i = j-1; i >= n; i--) #define PREC(n) fixed << setprecision(n) #define ll long long #define ull unsigned long long using namespace std; int main() { cin.tie(0); ios::sync_with_stdio(false); int N, M; cin >> N >> M; unordered_map > a; REP(i, M) { int item1, item2, score; cin >> item1 >> item2 >> score; a[item1][item2] = score; } vector v(N); iota(v.begin(), v.end(), 0); ull res = 0; do { ull tmp = 0; REP(i, N) FOR(j, i, N) { tmp += a[v[i]][v[j]]; } res = max(res, tmp); } while(next_permutation(v.begin(), v.end())); cout << res << endl; }