#include <bits/stdc++.h>
using namespace std;
int a[1000005];
int flag[5];
int main() {
  int n, m, i, j, k, x, y, z;
  while (~scanf("%d%d", &n, &m)) {
    memset(a, 0, sizeof(a));
    for (i = 0; i < m; i++) {
      memset(flag, 0, sizeof(flag));
      scanf("%d%d%d", &x, &y, &z);
      if (a[x] == 0 && a[y] == 0 && a[z] == 0) {
        a[x] = 1;
        a[y] = 2;
        a[z] = 3;
        continue;
      }
      if (a[x]) {
        flag[a[x]] = 1;
        for (k = 1; k <= 3; k++) {
          if (!flag[k]) {
            a[y] = k;
            flag[k] = 1;
            break;
          }
        }
        for (k = 1; k <= 3; k++) {
          if (!flag[k]) {
            a[z] = k;
            flag[k] = 1;
          }
        }
        continue;
      }
      if (a[y]) {
        flag[a[y]] = 1;
        for (k = 1; k <= 3; k++) {
          if (!flag[k]) {
            a[x] = k;
            flag[k] = 1;
            break;
          }
        }
        for (k = 1; k <= 3; k++) {
          if (!flag[k]) {
            a[z] = k;
            flag[k] = 1;
          }
        }
        continue;
      }
      if (a[z]) {
        flag[a[z]] = 1;
        for (k = 1; k <= 3; k++) {
          if (!flag[k]) {
            a[x] = k;
            flag[k] = 1;
            break;
          }
        }
        for (k = 1; k <= 3; k++) {
          if (!flag[k]) {
            a[y] = k;
            flag[k] = 1;
          }
        }
        continue;
      }
    }
    printf("%d", a[1]);
    for (i = 2; i <= n; i++) printf(" %d", a[i]);
    puts("");
  }
  return 0;
}
