#include <bits/stdc++.h>
using namespace std;
int n, a[100][100], done[100], vis[100];
vector<vector<int> > v;
vector<int> b, c;
set<int> s;
void floyd(void) {
  int i, j, k;
  for (k = 1; k <= n; k++) {
    for (i = 1; i <= n; i++) {
      for (j = 1; j <= n; j++) {
        {
          if (a[i][k] == 1 && a[k][j] == 1) a[i][j] = 1;
        }
      }
    }
  }
  return;
}
int getcnt(int r) {
  int i, j, ans = 0;
  for (j = 1; j <= n; j++)
    if (a[r][j] == 1) ans++;
  return ans;
}
int main() {
  int i, j, k, x, y, total = 0, idx, cnt, flag = 1, m;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; i++) {
    done[i] = 0;
    vis[i] = 0;
    for (j = 1; j <= n; j++) a[i][j] = 0;
  }
  v.clear();
  s.clear();
  for (i = 1; i <= m; i++) {
    scanf("%d%d", &x, &y);
    a[x][x] = a[x][y] = a[y][x] = a[y][y] = 1;
  }
  floyd();
  for (i = 1; i <= n; i++) {
    cnt = getcnt(i);
    if (cnt > 1) vis[i] = 1;
  }
  for (i = 1; i <= n; i++) {
    if (done[i] == 0) {
      b.clear();
      cnt = getcnt(i);
      if (cnt == 2) {
        for (j = 1; j <= n; j++)
          if (a[i][j] == 1) {
            b.push_back(j);
            done[j] = 1;
            vis[j] = 1;
          }
        for (j = 1; j <= n; j++)
          if (vis[j] == 0) {
            done[j] = 1;
            vis[j] = 1;
            b.push_back(j);
            break;
          }
        if (j > n) {
          flag = 0;
          break;
        }
        v.push_back(b);
      } else if (cnt == 3) {
        for (j = 1; j <= n; j++)
          if (a[i][j] == 1) {
            b.push_back(j);
            done[j] = 1;
            vis[j] = 1;
          }
        v.push_back(b);
      } else if (cnt > 3) {
        flag = 0;
        break;
      }
    }
  }
  if (flag == 1) {
    b.clear();
    for (j = 1; j <= n; j++)
      if (vis[j] == 0) {
        b.push_back(j);
      }
    for (j = 0; j < b.size(); j = j + 3) {
      c.clear();
      for (int k = 0; k <= 2; k++) c.push_back(b[k + j]);
      v.push_back(c);
    }
  }
  if (flag == 1) {
    for (i = 0; i < v.size(); i++) {
      for (j = 0; j <= 2; j++) printf("%d ", v[i][j]);
      printf("\n");
    }
  } else
    printf("-1\n");
  return 0;
}
