#include using namespace std; #define REP(i,N) for(i=0;i P; typedef struct{ int first; int second; int score; }T; //昇順 bool comp_score_greater(T& l, T& r){ return l.score > r.score; } int N,M; vector v; int calc_score(vector s){ int i,j; int score=0; REP(i,v.size()){ REP(j,N){ if(v[i].second == s[j]) break; if(v[i].first == s[j]){ score += v[i].score; break; } } } return score; } int main(void){ cin >> N >> M; v.resize(M); int i,max = 0; REP(i,M)cin >> v[i].first >> v[i].second >> v[i].score; vector s(N); REP(i,N) s[i] = i; do{ int score = calc_score(s); if(max < score) max = score; }while(next_permutation(s.begin(), s.end())); cout << max << endl; return 0; }