#include <bits/stdc++.h>
int n, m, a[23], f[1 << 22], d[1 << 22], p[1 << 22];
void WriteSol(int s) {
  if (!s) return;
  WriteSol(p[s]);
  printf("%d ", d[s]);
}
int main() {
  scanf("%d%d", &n, &m);
  while (m--) {
    int x, y;
    scanf("%d%d", &x, &y);
    a[x] |= 1 << y - 1;
    a[y] |= 1 << x - 1;
  }
  int st = (1 << n) - 1;
  bool z = 1;
  memset(f, 0x3f, sizeof f);
  for (int i = 1; i <= n; i++) {
    a[i] |= 1 << i - 1;
    f[a[i]] = 1;
    d[a[i]] = i;
    z &= a[i] == st;
  }
  if (z) {
    puts("0");
    return 0;
  }
  for (int s = 1; s <= st; s++) {
    for (int i = 1; i <= n; i++) {
      if ((s >> i - 1 & 1) && f[s | a[i]] > f[s] + 1) {
        f[s | a[i]] = f[s] + 1, d[s | a[i]] = i, p[s | a[i]] = s;
      }
    }
  }
  printf("%d\n", f[st]);
  WriteSol(st);
  return 0;
}
