#include <bits/stdc++.h>
using namespace std;
int read() {
  int x = 0;
  char c = getchar();
  while (c < '0' || '9' < c) c = getchar();
  while ('0' <= c && c <= '9')
    x = (x << 3) + (x << 1) + (c ^ 48), c = getchar();
  return x;
}
int p[200000 + 5];
int tp, stk[200000 + 5];
int U[200000 + 5], V[200000 + 5];
map<pair<int, int>, bool> Map;
int main() {
  int n = read(), m = read();
  for (int i = 1; i <= m; i++) {
    U[i] = read(), V[i] = read();
    Map[make_pair(U[i], V[i])] = 1;
    Map[make_pair(V[i], U[i])] = 1;
  }
  for (int i = 1; i <= n; i++) p[i] = i;
  for (int t = 100; t >= 0; t--) {
    random_shuffle(p + 1, p + n + 1);
    p[n + 1] = p[1];
    tp = 0;
    for (int i = 1; i <= n && tp < m; i++)
      if (!Map.count(make_pair(p[i], p[i + 1]))) stk[++tp] = i;
    if (tp == m) {
      for (int i = 1; i <= m; i++) printf("%d %d\n", p[stk[i]], p[stk[i] + 1]);
      return 0;
    }
  }
  puts("-1");
  return 0;
}
