#include <bits/stdc++.h>
using namespace std;
pair<int, int> M[111111];
int I[111111];
int A[111111], B[111111];
int sA[111111], sB[111111];
vector<int> G[111111];
vector<int> G2[111111];
int main(void) {
  int n, m;
  srand((int)time(0));
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    cin >> A[i] >> B[i];
    G[A[i]].push_back(B[i]);
    G[B[i]].push_back(A[i]);
  }
  for (int i = 0; i <= n; i++) {
    if (G[i].size() < 1) G[i].push_back(-1);
    if (G[i].size() < 2) G[i].push_back(-1);
    G2[i].push_back(-1);
    G2[i].push_back(-1);
    sA[i] = i + 1;
    sB[i] = i + 1;
  }
  for (int _ = 0; _ < 1111; _++) {
    bool ok = true;
    random_shuffle(sA, sA + n);
    random_shuffle(sB, sB + n);
    for (int i = 0; i < m; i++) {
      int a = sA[i], b = sB[i];
      if (G2[a][0] == -1)
        G2[a][0] = b;
      else if (G2[a][1] == -1)
        G2[a][1] = b;
      else {
        ok = false;
        break;
      }
      if (G2[b][0] == -1)
        G2[b][0] = a;
      else if (G2[b][1] == -1)
        G2[b][1] = a;
      else {
        ok = false;
        break;
      }
      if (sA[i] == sB[i] || G2[a][0] == G2[a][1] || G2[b][0] == G2[b][1] ||
          G[sA[i]][0] == sB[i] || G[sA[i]][1] == sB[i]) {
        ok = false;
        break;
      }
    }
    if (ok) {
      for (int i = 0; i < m; i++) {
        cout << sA[i] << " " << sB[i] << endl;
      }
      return 0;
    }
    for (int i = 0; i <= n; i++) {
      G2[i][0] = G2[i][1] = -1;
    }
  }
  cout << "-1" << endl;
  return 0;
}
