#include <bits/stdc++.h>   using namespace std;   const int64_t N = 5e6 + 10;   int64_t n, m;   int64_t it[N];   bool hamband[N];   int64_t adj[N];   int32_t main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     cin >> n >> m;     if (m == (n - 1) * n >> 1) {       cout << 0;       return 0;     }     for (int64_t i = 0; i < m; i++) {       int64_t x, y;       cin >> x >> y;       x--, y--;       adj[x] += (1 << y);       adj[y] += (1 << x);     }     hamband[0] = true;     int64_t tow = 1;     for (int64_t mask = 1; mask < (1 << n); mask++) {       if (mask == tow) {         hamband[mask] = true;         tow <<= 1;         continue;       }       for (int64_t now = mask; now;) {         int64_t i = __builtin_ctz(now);         if (hamband[mask ^ (1 << i)] && (adj[i] & mask)) {           hamband[mask] = true;           break;         }         now ^= (1 << i);       }     }     int64_t ans = 0, Ans = 0;     for (int64_t mask = 1; mask < (1 << n); mask++) {       if (!hamband[mask]) {         continue;       }       int64_t all = 0;       for (int64_t now = mask; now; now ^= (1 << __builtin_ctz(now))) {         all |= adj[__builtin_ctz(now)];       }       if ((all & ((1 << n) - 1 - mask)) == ((1 << n) - 1 - mask)) {         if (ans < n - __builtin_popcount(mask)) {           ans = n - __builtin_popcount(mask);           Ans = mask;         }       }     }     cout << n - ans <<   n ;     for (int64_t i = 0; i < n; i++) {       if (Ans & (1 << i)) {         cout << i + 1 <<    ;       }     }   }   