#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
int adj[MAXN][2];
int vec[MAXN][2];
int p[MAXN];
int ym[MAXN];
void add(int x, int y) {
  if (adj[x][0])
    adj[x][1] = y;
  else
    adj[x][0] = y;
}
int main() {
  int n, m, x, y;
  while (cin >> n >> m) {
    memset(adj, 0, sizeof(adj));
    for (int i = 0; i < m; i++) {
      scanf("%d%d", &x, &y);
      add(x, y);
      add(y, x);
    }
    for (int i = 1; i <= n; i++) p[i] = i;
    bool ans = false;
    for (int step = 0; step < 50; step++) {
      random_shuffle(p + 1, p + n + 1);
      bool ok = true;
      p[n + 1] = p[1];
      for (int i = 1; i <= m; i++) {
        int x = p[i];
        int y = p[i + 1];
        if (adj[x][0] == y || adj[x][1] == y) ok = false;
        vec[i][0] = x;
        vec[i][1] = y;
      }
      if (ok) {
        ans = true;
        for (int i = 1; i <= m; i++) printf("%d %d\n", vec[i][0], vec[i][1]);
        break;
      }
    }
    if (!ans) puts("-1");
  }
  return 0;
}
