#include <bits/stdc++.h>
using namespace std;
const int N = (1 << 23), OO = 1e6 + 1000, P = 6151, SQ = 1000, lg = 30;
int a[100];
bool is[N];
int32_t main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int n, m;
  cin >> n >> m;
  if (m == (n * (n - 1) / 2)) return cout << 0, 0;
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    x--, y--;
    a[x] |= (1 << y);
    a[y] |= (1 << x);
  }
  for (int i = 0; i < n; i++) is[(1 << i)] = true;
  pair<int, int> ans = {n, (1 << n) - 1};
  for (int msk = 0; msk < (1 << n); msk++) {
    int h = 0, t = 0;
    if (!is[msk]) continue;
    for (int j = 0; j < n; j++) {
      if ((msk & (1 << j)) == 0) continue;
      h |= a[j];
      t++;
    }
    for (int j = 0; j < n; j++) {
      if ((h & (1 << j)) == 0) continue;
      is[msk | (1 << j)] = true;
    }
    h |= msk;
    if (h != (1 << n) - 1) continue;
    ans = min(ans, {t, msk});
  }
  cout << ans.first << endl;
  int msk = ans.second;
  for (int i = 0; i < n; i++) {
    if ((msk & (1 << i)) == 0) continue;
    cout << i + 1 << " ";
  }
  return 0;
}
