#include <bits/stdc++.h>
using namespace std;
long parent[100];
long nm[100];
vector<long> v[100];
long pp(long z) {
  if (parent[z] == z) {
    return z;
  } else {
    parent[z] = pp(parent[z]);
  }
}
int main() {
  long i, j, k, l, m, n, p, two, one;
  scanf("%ld%ld", &n, &m);
  for (i = 1; i <= n; i++) parent[i] = i;
  for (i = 1; i <= m; i++) {
    scanf("%ld%ld", &k, &l);
    parent[l] = k;
  }
  for (i = 1; i <= n; i++) {
    k = pp(i);
  }
  for (i = 1; i <= n; i++) {
    nm[parent[i]]++;
    if (nm[parent[i]] > 3) {
      printf("-1\n");
      return 0;
    }
  }
  l = one = two = 0;
  for (i = 1; i <= n; i++) {
    if (nm[i] == 3) {
      k = 0;
      for (j = 1; j <= n; j++) {
        if (parent[j] == i) {
          v[l].push_back(j);
          parent[j] = -1;
          k++;
        }
      }
      nm[i] = -1;
      l++;
    }
    if (nm[i] == 2)
      two++;
    else if (nm[i] == 1)
      one++;
  }
  if (one >= two) {
    if ((one - two) % 3) {
      printf("-1\n");
      return 0;
    }
    while (two) {
      for (i = 1; i <= n; i++) {
        if (nm[i] == 2) {
          for (j = 1; j <= n; j++) {
            if (nm[j] == 1) {
              for (k = 1; k <= n; k++) {
                if (parent[k] == j) {
                  v[l].push_back(k);
                  nm[j] = -1;
                  parent[k] = -1;
                  break;
                }
              }
              break;
            }
          }
          for (j = 1; j <= n; j++) {
            if (parent[j] == i) {
              v[l].push_back(j);
              parent[j] = -1;
            }
          }
          nm[i] = -1;
          two--;
          one--;
          l++;
          break;
        }
      }
    }
    while (one) {
      k = 0;
      for (i = 1; i <= n; i++) {
        if (nm[i] == 1) {
          v[l].push_back(i);
          nm[i] = -1;
          k++;
          one--;
          if (k == 3) {
            l++;
            break;
          }
        }
      }
    }
    for (i = 0; i < l; i++) printf("%ld %ld %ld\n", v[i][0], v[i][1], v[i][2]);
  } else {
    printf("-1\n");
    return 0;
  }
  return 0;
}
