#include <bits/stdc++.h>
using namespace std;
const int N = 22;
int n, m, u, v, a[1 << N], dp[1 << N];
int solve(int mask = 0) {
  if (mask == (1 << n) - 1) return 0;
  int& ret = dp[mask];
  if (~ret) return ret;
  ret = n;
  for (int i = 0; i < n; ++i)
    if (!mask || mask & (1 << i)) ret = min(ret, solve(mask | a[i]) + 1);
  return ret;
}
void printAns(int mask = 0) {
  if (mask == (1 << n) - 1) return;
  for (int i = 0; i < n; ++i)
    if (!mask || mask & (1 << i))
      if (solve(mask) == solve(mask | a[i]) + 1) {
        cout << i + 1 << ' ';
        printAns(mask | a[i]);
        return;
      }
}
int main() {
  cin >> n >> m;
  if (m == n * (n - 1) / 2) {
    return cout << 0, 0;
  }
  while (m--) {
    scanf("%d %d", &u, &v);
    u--;
    v--;
    a[u] |= 1 << v;
    a[v] |= 1 << u;
  }
  for (u = 0; u < n; ++u) {
    a[u] |= 1 << u;
  }
  memset(dp, -1, sizeof(dp));
  cout << solve() << endl;
  printAns();
  return 0;
}
