#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const long long linf = 0x3f3f3f3f3f3f3f3f;
const double eps = 1e-6;
const double pi = 3.14159265358979;
const int maxn = 2e5 + 5;
const int maxm = 1e7 + 233;
const int mod = 1e9 + 7;
map<pair<int, int>, bool> mp;
vector<int> vx;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m;
  cin >> n >> m;
  int u, v;
  mp.clear();
  for (int i = 1; i <= m; ++i) {
    cin >> u >> v;
    mp[make_pair(u, v)] = mp[make_pair(v, u)] = true;
  }
  for (int i = 1; i <= n; ++i) vx.push_back(i);
  int ans = 0;
  int cnt = 666;
  while (cnt--) {
    random_shuffle(vx.begin(), vx.end());
    ans = 0;
    for (int i = 0; i < n - 1; ++i) {
      if (!mp[make_pair(vx[i], vx[i + 1])] &&
          !mp[make_pair(vx[i + 1], vx[i])]) {
        ++ans;
      }
    }
    if (!mp[make_pair(vx[0], vx[n - 1])] && !mp[make_pair(vx[n - 1], vx[0])]) {
      ++ans;
    }
    if (ans >= m) {
      for (int i = 0; i < n - 1 && m; ++i) {
        if (!mp[make_pair(vx[i], vx[i + 1])] &&
            !mp[make_pair(vx[i + 1], vx[i])]) {
          cout << vx[i] << " " << vx[i + 1] << '\n';
          --m;
        }
      }
      if (m) {
        if (!mp[make_pair(vx[0], vx[n - 1])] &&
            !mp[make_pair(vx[n - 1], vx[0])]) {
          cout << vx[0] << " " << vx[n - 1] << '\n';
        }
      }
      return 0;
    }
  }
  cout << -1 << '\n';
  return 0;
}
