#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main(){ int N,M; cin >> N >> M; vector perm; for( int i = 0 ; i < N ; i++ ){ perm.push_back(i); } vector > order[N]; for( int i = 0 ; i < M ; i++ ){ int a,b,s; cin >> a >> b >> s; order[b].push_back(make_pair(a,s)); } int score = 0; do{ int curScore = 0; bool appeared[N]; memset(appeared,false,sizeof(appeared)); for( int i = 0 ; i < N ; i++ ){ appeared[perm[i]]=true; int p = perm[i]; for( int j = 0 ; j < (int)order[p].size(); j++ ){ pair pa= order[p][j]; int prev = pa.first; int scr=pa.second; if( appeared[prev] == false ){ curScore+=scr; } } } score =max(score,curScore); }while(next_permutation(perm.begin(),perm.end())); printf("%d\n",score); return 0; }