#include <bits/stdc++.h>
using namespace std;
inline long long gcd(long long a, long long b) {
  while (b) {
    a %= b, swap(a, b);
  }
  return a;
}
inline long long lcm(long long a, long long b) {
  return a * b / max(1LL, gcd(a, b));
}
mt19937 Random((long long)time(0));
inline long long rnd(long long x) { return Random() % x; }
const long long INF = (long long)1e9 + 2017;
const long long MOD = (long long)1e9 + 7;
const long double EPS = 1e-10;
const long double PI = acos(-1.0);
const long long N = 22;
long long gr[N], dp[(1LL << (N))], pr[(1LL << (N))], ver[(1LL << (N))];
void init() {
  for (long long mask = 0; mask < (1LL << (N)); mask++) {
    dp[mask] = INF;
    pr[mask] = -1;
    ver[mask] = -1;
  }
  for (long long i = 0; i < N; i++) {
    gr[i] |= (1LL << (i));
  }
}
void source() {
  long long n, m;
  cin >> n >> m;
  if (n <= 2) {
    cout << 0;
    return;
  }
  for (long long i = 0; i < m; i++) {
    long long u, v;
    cin >> u >> v;
    u--, v--;
    gr[u] |= (1LL << (v));
    gr[v] |= (1LL << (u));
  }
  init();
  bool t = 1;
  for (long long i = 0; i < n; i++) {
    if (gr[i] != (1LL << (n)) - 1) {
      t = 0;
      break;
    }
  }
  if (t) {
    cout << 0;
    return;
  }
  dp[0] = 0;
  for (long long i = 0; i < n; i++) {
    dp[gr[i]] = 1;
    pr[gr[i]] = 0;
    ver[gr[i]] = i;
  }
  for (long long mask = 1; mask < (1LL << (n)); mask++) {
    for (long long v = 0; v < n; v++) {
      if (!(mask & (1LL << (v)))) {
        continue;
      }
      if (dp[mask | gr[v]] > dp[mask] + 1) {
        dp[mask | gr[v]] = dp[mask] + 1;
        pr[mask | gr[v]] = mask;
        ver[mask | gr[v]] = v;
      }
    }
  }
  long long mask = (1LL << (n)) - 1;
  vector<long long> ans;
  while (ver[mask] != -1) {
    ans.push_back(ver[mask]);
    mask = pr[mask];
  }
  cout << (long long)(ans).size() << endl;
  for (long long i = (long long)(ans).size() - 1; i >= 0; i--) {
    cout << ans[i] + 1 << " ";
  }
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cout.setf(ios_base::fixed, ios_base::floatfield);
  cout.precision(10);
  source();
}
