#include <bits/stdc++.h>
using namespace std;
vector<int> inc[100100];
int v[100100];
bool rem[100100];
int n, m;
bool tem(int a, int b) {
  for (int i = 0; i < inc[a].size(); ++i)
    if (inc[a][i] == b) return true;
  return false;
}
bool da() {
  int nrem = n - m;
  for (int i = 0; i < n; ++i) {
    if (tem(v[i], v[i + 1])) {
      rem[i] = true;
      if (nrem == 0) return false;
      nrem--;
    }
  }
  return true;
}
int main() {
  srand(time(0));
  scanf("%d %d", &n, &m);
  for (int i = 0; i < m; ++i) {
    int a, b;
    scanf("%d %d", &a, &b);
    a--;
    b--;
    inc[a].push_back(b);
    inc[b].push_back(a);
  }
  for (int i = 0; i < n; ++i) {
    v[i] = i;
  }
  int n_instr = 0;
  bool foi = false;
  while (n_instr < 5000000) {
    random_shuffle(v, v + n);
    v[n] = v[0];
    memset(rem, false, n * sizeof(bool));
    if (da()) {
      foi = true;
      break;
    }
    n_instr += n;
  }
  if (foi) {
    int cnt = 0;
    for (int i = 0; i < n; ++i) {
      if (rem[i] == false && cnt < m)
        printf("%d %d\n", v[i] + 1, v[i + 1] + 1), cnt++;
    }
  } else
    printf("-1\n");
  return 0;
}
