#include <bits/stdc++.h>
int main() {
  int q[52] = {0};
  int f[52];
  int N, T, i, j, k;
  scanf("%d%d", &N, &T);
  int a, b;
  int flag = 0;
  for (i = 1; i <= N; i++) f[i] = i;
  while (T--) {
    scanf("%d%d", &a, &b);
    if (q[a] == 0 && q[b] == 0)
      q[a] = 2;
    else if (q[a] == 0 && q[b] != 0)
      q[a] = q[b] + 1;
    else if (q[a] != 0 && (f[a] != b && f[b] != a))
      q[a]++;
    q[b] = q[a];
    if (f[a] == a) {
      for (i = 1; i <= N; i++) {
        if (f[i] == a) f[i] = b;
      }
      for (i = 1; i <= N; i++) {
        if (f[i] == b) q[i] = q[a];
      }
    } else {
      q[f[a]] = q[a];
      f[f[a]] = b;
      f[a] = b;
    }
  }
  for (i = 1; i <= N; i++)
    if (q[i] > 3) {
      flag = 1;
      break;
    }
  if (flag == 1)
    printf("-1\n");
  else {
    for (i = 1; i <= N; i++) {
      if (q[i] == 0) {
        for (j = 1; j <= N; j++) {
          if (j == i) continue;
          if (q[j] == 2) {
            q[j] = q[i] = 3;
            if (f[j] == j) {
              for (k = 1; k <= N; k++) {
                if (f[k] == j) q[k] = 3;
              }
              f[i] = j;
            } else {
              q[f[j]] = 3;
              f[i] = f[j];
            }
            break;
          }
        }
      }
    }
    int c, num = 0;
    for (i = 1; i <= N; i++) {
      if (q[i] == 0) {
        if (num == 0) {
          num++;
          a = i;
          continue;
        }
        if (num == 1) {
          num++;
          b = i;
          continue;
        }
        if (num == 2) {
          f[a] = f[b] = i;
          q[a] = q[b] = q[i] = 3;
          num = 0;
          continue;
        }
      }
    }
    for (i = 1; i <= N; i++) {
      if (q[i] != 3) {
        printf("-1\n");
        return 0;
      }
    }
    for (i = 1; i <= N; i++) {
      if (f[i] == i) {
        for (j = 1; j <= N; j++) {
          if (f[j] == i) printf("%d ", j);
        }
        printf("\n");
      }
    }
  }
  return 0;
}
