#include <bits/stdc++.h>
using namespace std;
int n, m;
int id[100000 + 5];
map<pair<int, int>, bool> edge;
int judge() {
  pair<int, int> p;
  int ans = 0;
  for (int i = 0; i < n; i++) {
    p.first = id[i];
    p.second = id[i + 1];
    if (!edge[p]) ans++;
  }
  return ans >= m;
}
int main() {
  scanf("%d%d", &n, &m);
  pair<int, int> p;
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &p.first, &p.second);
    edge[p] = true;
    swap(p.first, p.second);
    edge[p] = true;
  }
  for (int i = 1; i <= n; i++) id[i] = i;
  int time = 1000000, flag = 0;
  while (time--) {
    random_shuffle(id + 1, id + n + 1);
    id[0] = id[n];
    if (judge()) {
      for (int i = 0, cnt = 0; cnt < m; i++) {
        p.first = id[i];
        p.second = id[i + 1];
        if (!edge[p]) {
          printf("%d %d\n", id[i], id[i + 1]);
          cnt++;
        }
      }
      flag = 1;
      break;
    }
  }
  if (!flag) {
    printf("-1\n");
  }
  return 0;
}
