#include <bits/stdc++.h>
using namespace std;
const long long maxn = (1 << 22) + 10;
long long f[maxn];
long long a[maxn];
long long pre[maxn];
long long fa[maxn];
void prin(int temp) {
  if (fa[temp]) prin(fa[temp]);
  printf("%lld ", pre[temp]);
}
int main() {
  int n, m, temp;
  scanf("%d%d", &n, &m);
  temp = (1 << n) - 1;
  for (int i = 0; i < n; i++) a[i + 1] = 1 << i;
  for (int i = 0; i < m; i++) {
    int u, v;
    scanf("%d%d", &u, &v);
    u--;
    v--;
    a[u + 1] |= 1 << v;
    a[v + 1] |= 1 << u;
  }
  int flag = 1;
  memset(f, maxn, sizeof(f));
  for (int i = 1; i <= n; i++) {
    f[a[i]] = 1;
    pre[a[i]] = i;
    if (a[i] != temp) flag = 0;
  }
  if (flag) {
    cout << 0 << endl;
    return 0;
  }
  for (int i = 1; i <= temp; i++) {
    if (f[i] != maxn) {
      for (int j = 1; j <= n; j++) {
        if ((i & 1 << (j - 1)) && f[i] + 1 < f[i | a[j]]) {
          f[i | a[j]] = f[i] + 1;
          fa[i | a[j]] = i;
          pre[i | a[j]] = j;
        }
      }
    }
  }
  cout << f[temp] << endl;
  prin(temp);
  return 0;
}
