#include <bits/stdc++.h>
using namespace std;
const int N = 22, oo = 1e9;
int n, m, e[N], dp[1 << N], sol[1 << N];
int calc(int msk) {
  if (msk == (1 << n) - 1) return 0;
  int &r = dp[msk];
  if (r != -1) return r;
  r = oo;
  for (int i = 0, tmp; i < n; i++)
    if ((msk & (1 << i)) && msk != (msk | e[i])) {
      tmp = calc(msk | e[i]) + 1;
      if (tmp < r) {
        r = tmp;
        sol[msk] = i;
      }
    }
  return r;
}
int main() {
  scanf("%d%d", &n, &m);
  if (m == n * (n - 1) / 2) {
    puts("0");
    return 0;
  }
  for (int i = 0; i < n; i++) e[i] = 1 << i;
  for (int i = 0, a, b; i < m; i++) {
    scanf("%d%d", &a, &b);
    a--, b--;
    e[a] |= (1 << b);
    e[b] |= (1 << a);
  }
  memset(dp, -1, sizeof dp);
  int ans = oo, u = -1;
  for (int i = 0, tmp; i < n; i++) {
    tmp = calc(e[i]) + 1;
    if (tmp < ans) {
      ans = tmp;
      u = i;
    }
  }
  printf("%d\n%d", ans, u + 1);
  int msk = e[u];
  u = sol[msk];
  while (msk != (1 << n) - 1) {
    printf(" %d", u + 1);
    msk |= e[u];
    u = sol[msk];
  }
  puts("");
  return 0;
}
