#include <bits/stdc++.h>
using namespace std;
const int N = 100009;
vector<int> edges[N];
vector<int> a;
int n, m;
int main() {
  while (cin >> n >> m) {
    a.clear();
    for (int i = 1; i <= n; ++i) edges[i].clear(), a.push_back(i);
    for (int i = 0; i < m; ++i) {
      int ac, b;
      cin >> ac >> b;
      edges[ac].push_back(b);
      edges[b].push_back(ac);
    }
    bool t = true;
    int u, v;
    for (int i = 0; i < 500; ++i) {
      random_shuffle(a.begin(), a.end());
      bool flg = true;
      for (int j = 0; j < m && flg; ++j) {
        u = a[j];
        v = a[(j + 1) % n];
        for (int k = 0; k < edges[u].size(); ++k)
          if (edges[u][k] == v) flg = false;
      }
      if (flg) {
        for (int j = 0; j < m; ++j)
          cout << a[j] << " " << a[(j + 1) % n] << endl;
        t = false;
        break;
      }
    }
    if (t) cout << -1 << endl;
  }
  return 0;
}
