func_code_string: #include <bits/stdc++.h>   using namespace std;   int d[100][110];   int grad[110];   int dp[1 << 16];   int main() {     int n, m, a, b, c, sum(0);     ios_base ::sync_with_stdio(0);     cin.tie(0);     cin >> n >> m;     for (int i(0); i < n; i++)       for (int j(0); j < n; j++)         if (i != j) d[i][j] = 1e9;     while (m--) {       cin >> a >> b >> c;       a--;       b--;       sum += c;       grad[a]++, grad[b]++;       d[a][b] = d[b][a] = min(d[a][b], c);     }     for (int k(0); k < n; k++)       for (int i(0); i < n; i++)         for (int j(0); j < n; j++) d[i][j] = min(d[i][j], d[i][k] + d[k][j]);     for (int i(0); i < n; i++) {       if (grad[i] && d[0][i] >= 1e9) {         cout << -1;         return 0;       }     }     int mask(0);     for (int i(0); i < n; i++)       if (grad[i] & 1) mask |= (1 << i);     for (int i(0); i <= mask; i++) dp[i] = 1e9;     dp[mask] = 0;     while (mask) {       for (int i(0); i < n; i++) {         if (!(mask & (1 << i))) continue;         for (int j(i + 1); j < n; j++)           if (mask & (1 << j))             dp[mask ^ (1 << i) ^ (1 << j)] =                 min(dp[mask ^ (1 << i) ^ (1 << j)], dp[mask] + d[i][j]);       }       mask--;     }     cout << dp[0] + sum <<   n ;   }   