#include #define FOR(i,a,b) for(int i=(a);i<(b);++i) #define REP(i,n) for(int i=0;i<(n);i++) #define FORq(i, m, n) for(int i = (m);i <= (n);i++) #define SCD(n) scanf("%d",&n) #define SCD2(m,n) scanf("%d%d",&m,&n) #define SCD3(m,n,k) scanf("%d%d%d",&m,&n,&k) #define PB push_back #define MP make_pair #define ARSCD(A,N) REP(i,N){SCD(A[i]);} #define ARSCD1(A,N) FORq(i,1,N){SCD(A[i]);} #define PRINTD(n) printf("%d\n",n) #define PRINTLLD(n) printf("%lld\n",n) #define DEBUG printf("%s\n","debug") #define fst first #define snd second using namespace std; typedef pair PII; typedef vector VI; typedef long long ll; ////////////////////////////////////////////////////// int main(){ int N,M; SCD2(N,M); vector< vector >score; vectorper; int ans = 0; REP(i,M){ int a,b,c; SCD3(a,b,c); vector x; x.PB(a); x.PB(b); x.PB(c); score.PB(x); } REP(i,N){ per.PB(i); } do{ int nans = 0; REP(i,M){ vector X = score[i]; int a = X[0]; int b = X[1]; int c = X[2]; if (per[a] < per[b]) nans += c; } ans = max(nans,ans); }while(next_permutation(per.begin(),per.end())); PRINTD(ans); return 0; }