#include <bits/stdc++.h>
int n, m;
int a, b;
int map[1005][1005];
int vis[1005];
int lu[2222][2];
int main() {
  int i, j;
  scanf("%d%d", &n, &m);
  for (i = 0; i < m; i++) {
    scanf("%d%d", &a, &b);
    map[a][b] = map[b][a] = -1;
    vis[a] = vis[b] = 1;
  }
  for (i = 1; i <= n; i++) {
    if (vis[i] == 0) {
      break;
    }
  }
  if (i != n + 1) {
    int t = 0;
    for (j = 1; j <= n; j++) {
      if (j != i) {
        lu[t][0] = i;
        lu[t][1] = j;
        t++;
      }
    }
    printf("%d\n", n - 1);
    for (i = 0; i < n - 1; i++) printf("%d %d\n", lu[i][0], lu[i][1]);
  }
  if (i == n + 1) {
    printf("%d\n", n);
    for (i = 1; i <= n - 1; i++) printf("%d %d\n", i, i + 1);
    printf("%d 1\n", n);
  }
  return 0;
}
