#include <bits/stdc++.h>
using namespace std;
int n, m, perm[100005], res, deg[100005];
set<pair<int, int> > s;
pair<int, int> e[100005];
void go(int x, int y, int cnt) {
  if (cnt >= m) {
    for (int i = 0; i < cnt; i++) printf("%d %d\n", e[i].first, e[i].second);
    res = 1;
    return;
  }
  if (y > n) return;
  if (!s.count({x, y}) && deg[x] <= 1 && deg[y] <= 1) {
    deg[x]++;
    deg[y]++;
    e[cnt] = {x, y};
    if (y + 1 <= n)
      go(x, y + 1, cnt + 1);
    else
      go(x + 1, x + 2, cnt + 1);
    deg[x]--;
    deg[y]--;
    if (res) return;
  }
  e[cnt] = {0, 0};
  if (y + 1 <= n)
    go(x, y + 1, cnt);
  else
    go(x + 1, x + 2, cnt);
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    s.insert({x, y});
    s.insert({y, x});
  }
  if (n <= 7) {
    go(1, 2, 0);
    if (!res) puts("-1");
  } else {
    for (int i = 0; i < n; i++) perm[i] = i + 1;
    bool ok = 0;
    for (int k = 1; k <= 200; k++) {
      random_shuffle(perm, perm + n);
      perm[n] = perm[0];
      int cnt = 0;
      for (int i = 0; i < n; i++) {
        if (s.count({perm[i], perm[i + 1]})) continue;
        cnt++;
      }
      if (cnt >= m) ok = 1;
      if (ok) break;
    }
    if (!ok)
      puts("-1");
    else {
      int cnt = 0;
      for (int i = 0; i < n; i++) {
        if (s.count({perm[i], perm[i + 1]})) continue;
        printf("%d %d\n", perm[i], perm[i + 1]);
        cnt++;
        if (cnt == m) break;
      }
    }
  }
}
