#include <bits/stdc++.h>
using namespace std;
int n, m, mp[30][30], g[30], mp2[30][30];
pair<int, int> det(int x) {
  int tot = 0, res = 0;
  for (int i = 1; i <= n; i++)
    if (i != x && mp[x][i] == 1) g[++tot] = i;
  for (int i = 1; i <= tot; i++)
    for (int j = i + 1; j <= tot; j++)
      if (mp[g[i]][g[j]] == 0) ++res;
  return make_pair(res, tot);
}
int dett(int x) {
  int tot = 0;
  for (int i = 1; i <= n; i++)
    if (i != x && mp[x][i] == 1) ++tot;
  return tot;
}
vector<int> tans;
vector<int> ans;
int dodo[30];
void dfs(int bb, int j) {
  if (ans.size() >= tans.size()) return;
  if (bb == 0) {
    tans = ans;
    return;
  }
  vector<pair<int, int> > re;
  for (int i = j; i <= n; i++) {
    int t = i;
    ans.push_back(t);
    int tot = 0;
    for (int i = 1; i <= n; i++)
      if (i != t && mp[t][i] == 1) g[++tot] = i;
    for (int i = 1; i <= tot; i++)
      for (int j = i + 1; j <= tot; j++)
        if (mp[g[i]][g[j]] == 0)
          mp[g[i]][g[j]] = mp[g[j]][g[i]] = 1,
          re.push_back(make_pair(g[i], g[j])), --bb;
    dfs(bb, i + 1);
    ans.pop_back();
    while (!re.empty()) {
      int x = re.back().first, y = re.back().second;
      mp[x][y] = mp[y][x] = 0;
      ++bb;
      re.pop_back();
    }
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    mp[x][y] = mp[y][x] = 1;
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) mp2[i][j] = mp[i][j];
  while (1) {
    int maxx = -1;
    for (int i = 1; i <= n; i++)
      if (maxx == -1 || det(i) > det(maxx)) maxx = i;
    if (det(maxx).first == 0) break;
    tans.push_back(maxx);
    int tot = 0;
    for (int i = 1; i <= n; i++)
      if (i != maxx && mp[maxx][i] == 1) g[++tot] = i;
    for (int i = 1; i <= tot; i++)
      for (int j = i + 1; j <= tot; j++)
        if (mp[g[i]][g[j]] == 0) mp[g[i]][g[j]] = mp[g[j]][g[i]] = 1;
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) mp[i][j] = mp2[i][j];
  dfs(n * (n - 1) / 2 - m, 1);
  printf("%d\n", tans.size());
  for (int i = 0; i < (int)tans.size(); i++) printf("%d ", tans[i]);
  return 0;
}
