func_code_string: #include <bits/stdc++.h>   using namespace std;   bool debug = 0;   int n, m, k;   int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};   string direc =  RDLU ;   long long ln, lk, lm;   void etp(bool f = 0) {     puts(f ?  YES  :  NO );     exit(0);   }   void addmod(int &x, int y, int mod = 1000000007) {     assert(y >= 0);     x += y;     if (x >= mod) x -= mod;     assert(x >= 0 && x < mod);   }   void et() {     puts( -1 );     exit(0);   }   long long fastPow(long long x, long long y, int mod = 1000000007) {     long long ans = 1;     while (y > 0) {       if (y & 1) ans = (x * ans) % mod;       x = x * x % mod;       y >>= 1;     }     return ans;   }   long long gcd1(long long x, long long y) {     long long z = y;     while (x % y != 0) {       z = x % y;       x = y;       y = z;     }     return z;   }   int a[33];   int dp[(1 << 22) + 5], mn[(1 << 22) + 5], bs;   void fmain(int ID) {     scanf( %d%d , &n, &m);     for (int(i) = 1; (i) <= (int)(m); (i)++) {       int u, v;       scanf( %d%d , &u, &v);       u--;       v--;       a[u] |= 1 << v;       a[v] |= 1 << u;     }     bs = (1 << n) - 1;     for (int(i) = 0; (i) < (int)(n); (i)++) dp[1 << i] = 1;     for (int(i) = 0; (i) < (int)(n); (i)++) a[i] |= 1 << i;     int cc = 0;     for (int(i) = 0; (i) < (int)(n); (i)++)       if (a[i] == (1 << n) - 1) {         cc++;       }     if (cc == n) {       puts( 0 );       return;     }     for (int s = 0; s < (1 << n); s++)       if (dp[s]) {         int tmp = 0;         for (int(j) = 0; (j) < (int)(n); (j)++)           if (s & (1 << j)) {             tmp |= a[j];           }         for (int(j) = 0; (j) < (int)(n); (j)++)           if (tmp & (1 << j)) {             dp[s | (1 << j)] = 1;           }         if (tmp == (1 << n) - 1) {           if (__builtin_popcount(s) < __builtin_popcount(bs)) {             bs = s;           }         }       }     printf( %d n , __builtin_popcount(bs));     for (int(j) = 0; (j) < (int)(n); (j)++)       if (bs & (1 << j)) printf( %d  , j + 1);   }   int main() {     int t = 1;     for (int(i) = 1; (i) <= (int)(t); (i)++) {       fmain(i);     }     return 0;   }   