func_code_string: // shirley smokes weed   #include <bits/stdc++.h>   #define sz(v) ((int)(v).size())   #define all(v) (v).begin(), (v).end()   using namespace std;   using lint = long long;   using pi = pair<int, int>;   const int MAXN = 400;      int n, m, s[MAXN], e[MAXN], x[MAXN];   int dp[1 << 18], indep[1 << 18], w[1 << 18], tk[1 << 18];      int main(){    scanf( %d %d ,&n,&m);    for(int i=0; i<m; i++){     scanf( %d %d %d ,&s[i],&e[i],&x[i]);     s[i]--; e[i]--;    }    for(int i=1; i<(1<<n); i++){     indep[i] = 1;     for(int j=0; j<m; j++){      int b1 = (i >> s[j]) & 1;      int b2 = (i >> e[j]) & 1;      if(b1 && b2) indep[i] = 0;      if(b1 == b2) continue;      if(b1 == 1 && b2 == 0) w[i] = 1e9;      else w[i] += x[j];     }    }    dp[0] = 0;    for(int i=1; i<(1<<n); i++){     dp[i] = 1e9;     if(w[i] > 1e8) continue;     for(int j=i; j; j=(j-1)&i){      if(indep[j] && dp[i] > dp[i ^ j]){       dp[i] = dp[i ^ j];       tk[i] = j;      }     }     dp[i] += w[i];    }    vector<int> a(n);    for(int i = (1 << n) - 1; i; i ^= tk[i]){     for(int j = 0; j < n; j++){      if((i >> j) & 1) a[j]++;     }    }    for(int i=0; i<n; i++) printf( %d  , n + 1 - a[i]);   }   