#include <bits/stdc++.h>
using namespace std;
stack<int> remind;
int rc[50];
int r[50][50];
bool used[50];
int main() {
  int tc = 0, oc = 0;
  int n, m;
  scanf("%d%d", &n, &m);
  while (m--) {
    int p1, p2;
    scanf("%d%d", &p1, &p2);
    r[p1][++rc[p1]] = p2;
    r[p2][++rc[p2]] = p1;
  }
  for (int i = 1; i <= n; i++) {
    if (rc[i] >= 3) {
      printf("-1");
      return 0;
    }
    if (rc[i] == 0) {
      remind.push(i);
      oc++;
    }
    if (rc[i] == 1) {
      tc++;
    }
  }
  if (oc < (tc / 2)) {
    printf("-1");
    return 0;
  }
  for (int j = 1; j <= n; j++) {
    if (used[j]) continue;
    if (rc[j] == 2) {
      printf("%d %d %d\n", j, r[j][1], r[j][2]);
      used[r[j][2]] = used[r[j][1]] = used[j] = true;
    }
    if (rc[j] == 1) {
      if (!remind.empty()) {
        int temp = remind.top();
        remind.pop();
        printf("%d %d %d\n", j, r[j][1], temp);
        used[j] = used[r[j][1]] = used[temp] = true;
      }
    }
    if (rc[j] == 0) continue;
  }
  while (!remind.empty()) {
    int a = remind.top();
    remind.pop();
    int b = remind.top();
    remind.pop();
    int c = remind.top();
    remind.pop();
    printf("%d %d %d\n", a, b, c);
  }
}
