func_code_string: #include <bits/stdc++.h>   using namespace std;   int f[10000050], pre[10000050], used[10000050], edge[105];   vector<int> vec;   int main() {     int n, m, i, j, x, y, maxi, size, news;     scanf( %d%d , &n, &m);     for (i = 1; i <= m; i++) {       scanf( %d%d , &x, &y);       edge[x] |= 1 << y;       edge[y] |= 1 << x;     }     memset(f, 127, sizeof(f));     for (i = 1; i <= n; i++) f[1 << i] = 0;     maxi = 0;     for (i = 1; i <= n; i++) maxi |= 1 << i;     for (i = 0; i <= maxi; i++)       if (f[i] < 999999999) {         for (j = 1; j <= n; j++)           if ((1 << j) & i) {             news = i | edge[j];             if (f[i] + 1 < f[news]) {               f[news] = f[i] + 1;               used[news] = j;               pre[news] = i;             }           } else if ((i & edge[j]) == i) {             news = i | (1 << j);             if (f[i] < f[news]) {               f[news] = f[i];               used[news] = 0;               pre[news] = i;             }           }       }     vec.clear();     for (i = maxi; (i & -i) != i; i = pre[i])       if (used[i]) vec.push_back(used[i]);     size = vec.size();     printf( %d n , size);     for (i = size - 1; i >= 0; i--) printf( %d  , vec[i]);     printf(  n );     return 0;   }   