#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,n) for(int i=0;i=0;--i) #define REPI(itr,v) for(auto itr=v.begin();itr!=v.end();++itr) #define REPIR(itr,v) for(auto itr=v.rbegin();itr!=v.rend();++itr) #define FOR(i,a,b) for(int i=a;i pii; int main(){ int n, m; scanf("%d %d", &n, &m); int g[14][14] = {}; REP(i,m){ int a, b, c; scanf("%d %d %d", &a, &b, &c); g[a][b] = c; } llong dp[1 << n] = {}; REP(i, 1 << n){ REP(j, n){ if(!(i & (1 << j))){ //jがiに入ってない場合 int sum = 0; REP(k, n){ if(i & (1 << k)){ sum += g[k][j]; } } dp[i | (1 << j)] = max(dp[i | (1 << j)], dp[i] + sum); } } } printf("%lld\n", dp[(1 << n) - 1]); return 0; }