#include <bits/stdc++.h>
using namespace std;
void print() {
  if constexpr (0) cout << '\n';
}
template <typename T, typename... Ts>
void print(const T &value, const Ts &...values) {
  if constexpr (0) cout << value << ' ', print(values...);
}
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
struct custom_hash {
  static unsigned long long splitmix64(unsigned long long x) {
    x += 0x9e3779b97f4a7c15;
    x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
    x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
    return x ^ (x >> 31);
  }
  size_t operator()(pair<int, int> x) const {
    static const unsigned long long FIXED_RANDOM1 =
        chrono::steady_clock::now().time_since_epoch().count();
    static const unsigned long long FIXED_RANDOM2 =
        chrono::steady_clock::now().time_since_epoch().count();
    return hash<unsigned long long>()(splitmix64(x.first + FIXED_RANDOM1) ^
                                      splitmix64(x.second + FIXED_RANDOM2));
  }
};
using hashmap = unordered_map<pair<int, int>, bool, custom_hash>;
hashmap mark;
int n, m;
set<pair<int, int> > st;
bool check(vector<int> &a) {
  st.clear();
  for (int i = (int)0; i <= (int)a.size() - 1; i++) {
    if (a[i] != i && mark.find(minmax(a[i], i)) == mark.end()) {
      st.insert(minmax(a[i], i));
      if (st.size() >= m) return true;
    }
    if (a.size() - (i + 1) + st.size() < m) return false;
  }
  return false;
}
void refine(vector<int> &a) {
  for (int i = (int)0; i <= (int)a.size() - 1; i++) {
    if (a[i] == i) {
      if (i)
        swap(a[i], a[i - 1]);
      else if (i + 1 < a.size())
        swap(a[i], a[i + 1]);
    }
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m;
  mark.max_load_factor(0.25);
  mark.reserve(m);
  for (int i = (int)1; i <= (int)m; i++) {
    int u, v;
    cin >> u >> v;
    u--;
    v--;
    mark[minmax(u, v)] = true;
  }
  vector<int> a;
  for (int i = (int)0; i <= (int)n - 1; i++) a.push_back(i);
  while (true) {
    shuffle(a.begin(), a.end(), rd);
    refine(a);
    if (check(a)) {
      for (auto it : st) cout << it.first + 1 << ' ' << it.second + 1 << '\n';
      return 0;
    }
    if (1.0 * clock() / CLOCKS_PER_SEC >= 1.4) break;
  }
  cout << -1 << '\n';
}
