#include <bits/stdc++.h>
using namespace std;
int n, m;
set<int> edges[(int)1e5];
bool check(const vector<int> &p) {
  for (int i = 0; i < (int)(m); i++) {
    int j = i == n - 1 ? 0 : i + 1;
    if (edges[p[i]].count(p[j])) {
      return false;
    }
  }
  return true;
}
int main() {
  scanf("%d %d", &n, &m);
  for (int i = 0; i < (int)(m); i++) {
    int x, y;
    scanf("%d %d", &x, &y);
    --x, --y;
    edges[x].insert(y);
    edges[y].insert(x);
  }
  vector<int> p(n);
  for (int i = 0; i < (int)(n); i++) p[i] = i;
  for (int _ = 0; _ < (int)(3000); _++) {
    random_shuffle(p.begin(), p.end());
    if (check(p)) {
      for (int i = 0; i < (int)(m); i++)
        printf("%d %d\n", p[i] + 1, p[(i + 1) % n] + 1);
      return 0;
    }
  }
  puts("-1");
  return 0;
}
