#include <bits/stdc++.h>
using namespace std;
int p[100010], n, m;
map<pair<int, int>, bool> vis;
struct edge {
  int u, v;
} e[20];
int bit[100010], c, du[100010];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1, u, v; i <= m; i++) {
    scanf("%d%d", &u, &v);
    vis[pair<int, int>(u, v)] = vis[pair<int, int>(v, u)] = 1;
  }
  if (n <= 5) {
    for (int i = 1; i <= n; i++)
      for (int j = i + 1; j <= n; j++)
        if (!vis[pair<int, int>(i, j)]) e[c].u = i, e[c].v = j, c++;
    bool flag = 0;
    int tot = 1 << c;
    for (int s = 1; s < tot && !flag; s++) {
      bit[s] = bit[s >> 1] + (s & 1);
      if (bit[s] == m) {
        for (int i = 1; i <= n; i++) du[i] = 0;
        for (int i = 0; i < c; i++)
          if ((s >> i) & 1) {
            du[e[i].u]++;
            du[e[i].v]++;
          }
        bool t = 1;
        for (int i = 1; i <= n && t; i++)
          if (du[i] > 2) t = 0;
        if (t) {
          for (int i = 0; i < c; i++)
            if ((s >> i) & 1) printf("%d %d\n", e[i].u, e[i].v);
          flag = 1;
        }
      }
    }
    if (!flag) printf("-1\n");
  } else if (n < 9) {
    for (int i = 1; i <= n; i++) p[i] = i;
    do {
      bool t = !vis[pair<int, int>(p[1], p[n])];
      for (int i = 2; i <= n && t; i++)
        if (vis[pair<int, int>(p[i], p[i - 1])]) t = 0;
      if (t) {
        for (int i = 2; i <= n && m; i++)
          printf("%d %d\n", p[i], p[i - 1]), m--;
        if (m) printf("%d %d\n", p[1], p[n]);
        break;
      }
    } while (next_permutation(p + 1, p + 1 + n));
  } else {
    for (int i = 1; i <= n; i++) p[i] = i;
    int k = 50;
    while (k--) {
      for (int i = 1; i <= n; i++) {
        int pos = 1LL * rand() * rand() % (n - i + 1) + i;
        swap(p[i], p[pos]);
      }
      bool t = !vis[pair<int, int>(p[1], p[n])];
      for (int i = 1; i <= n && t; i++)
        if (vis[pair<int, int>(p[i], p[i - 1])]) t = 0;
      if (t) {
        for (int i = 2; i <= n && m; i++)
          printf("%d %d\n", p[i], p[i - 1]), m--;
        if (m) printf("%d %d\n", p[1], p[n]);
        break;
      }
    }
  }
}
