#include <bits/stdc++.h>
using namespace std;
int n, nej;
set<int> adlis[100005];
vector<int> stok;
vector<pair<int, int> > ans;
bool ya;
int a, b;
int head;
void rek(int x, int dep) {
  if ((nej == n) && (dep == nej - 1)) {
    if (adlis[x].count(head) == 0) {
      ans.push_back(make_pair(x, head));
      for (int i = 0; i < ans.size(); i++) {
        printf("%d %d\n", ans[i].first + 1, ans[i].second + 1);
      }
      exit(0);
    }
  }
  if (dep == nej) {
    for (int i = 0; i < ans.size(); i++) {
      printf("%d %d\n", ans[i].first + 1, ans[i].second + 1);
    }
    exit(0);
  } else {
    stok.pop_back();
    for (int i = 0; i < stok.size(); i++) {
      swap(stok[i], stok.back());
      if (adlis[x].count(stok.back()) == 0) {
        ans.push_back(make_pair(x, stok.back()));
        rek(stok.back(), dep + 1);
        ans.pop_back();
      }
      swap(stok[i], stok.back());
    }
    stok.push_back(x);
  }
}
int main() {
  scanf("%d%d", &n, &nej);
  for (int i = 0; i < nej; i++) {
    scanf("%d%d", &a, &b);
    a--;
    b--;
    adlis[a].insert(b);
    adlis[b].insert(a);
  }
  srand(1106047770);
  for (int i = 0; i < n; i++) {
    stok.push_back(i);
  }
  random_shuffle(stok.begin(), stok.end());
  ya = 0;
  for (int i = 0; i < stok.size(); i++) {
    swap(stok[i], stok.back());
    head = stok.back();
    rek(stok.back(), 0);
    swap(stok[i], stok.back());
  }
  if (!ya) {
    printf("-1\n");
  }
  return 0;
}
