#include <bits/stdc++.h>
using namespace std;
const int init = -1;
int minstep[1 << 22], friends[22];
struct list {
  int last, bridge;
} enu[1 << 22];
int main() {
  memset(minstep, 1, sizeof(minstep));
  std::ios::sync_with_stdio(false);
  int n, m, a, b, i, j, allfriends, tem;
  cin >> n >> m;
  allfriends = (1 << n) - 1;
  for (i = 0; i < n; i++) friends[i] = 1 << i;
  for (i = 0; i < m; i++) {
    cin >> a >> b;
    friends[--a] |= 1 << --b;
    friends[b] |= 1 << a;
  }
  for (tem = i = 1; i <= allfriends; tem = ++i) {
    for (j = 0; j < n; j++)
      if (i & 1 << j) tem &= friends[j];
    if (tem == i) minstep[i] = 0, enu[i].last = init;
    for (j = 0; j < n; j++)
      if (i & 1 << j && minstep[i] + 1 < minstep[i | friends[j]]) {
        minstep[i | friends[j]] = minstep[i] + 1;
        enu[i | friends[j]].last = i;
        enu[i | friends[j]].bridge = j + 1;
      }
  }
  cout << minstep[allfriends] << endl;
  for (int back = allfriends; enu[back].last != init; back = enu[back].last)
    cout << (back == allfriends ? "" : " ") << enu[back].bridge;
}
