#include <bits/stdc++.h>
using namespace std;
const int MX = 5 * 1000 * 1000 + 100, mod = 1000 * 1000 * 1000 + 7;
bool mask[MX];
int mat[30][30];
int out = 0;
int32_t main() {
  int n, m;
  scanf("%d %d", &n, &m);
  for (int i = 0; i < m; i++) {
    int u, v;
    scanf("%d %d", &u, &v);
    u--;
    v--;
    mat[u][v] = 1;
    mat[v][u] = 1;
  }
  int r = 1 << n;
  mask[0] = 1;
  for (int i = 0; i < n; i++) mask[1 << i] = 1;
  for (int i = 1; i < r; i++) {
    for (int j = 0; j < n; j++) {
      if (i & (1 << j)) {
        if (mask[i ^ (1 << j)] == 0) continue;
        for (int k = 0; k < n; k++) {
          if (i & (1 << k) && mat[j][k]) {
            mask[i] = 1;
            break;
          }
        }
        break;
      }
    }
  }
  if (m == (n) * (n - 1) / 2) {
    cout << 0 << endl;
    return 0;
  }
  int ans = 100000000;
  for (int i = 1; i < r; i++) {
    bool tf = mask[i];
    for (int j = 0; j < n; j++) {
      if (mask[i | (1 << j)] == 0) {
        tf = 0;
      }
    }
    if (tf) {
      int x = __builtin_popcount(i);
      if (x < ans) {
        ans = x;
        out = i;
      }
    }
  }
  printf("%d \n", ans);
  for (int i = 0; i < n; i++) {
    if (out & (1 << i)) {
      printf("%d ", i + 1);
    }
  }
  printf("\n");
}
