#define _USE_MATH_DEFINES #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 using namespace std; class Edge { public: int to, cost; Edge(int to, int cost){ this->to = to; this->cost = cost; } }; int main() { int n, m; cin >> n >> m; vector > edges(n); for(int i=0; i> a >> b >> c; -- a; -- b; edges[a].push_back(Edge(b, c)); edges[b].push_back(Edge(a, c)); } vector > dp(1<(n, -1)); for(int i=0; i bs(i); for(int j=0; j bs2 = bs; bs2[e.to] = true; dp[bs2.to_ulong()][e.to] = max(dp[bs2.to_ulong()][e.to], dp[i][j] + e.cost); } } } int ans = 0; for(int i=1; i<(1<