#include <bits/stdc++.h>
using namespace std;
ifstream in("sortare.in");
ofstream out("sortare.out");
const int DIM = 5005;
int a[DIM], b[DIM], c[DIM], ans[DIM];
void modify(int le, int ri, int x)
{
for (int i = ri; i >= le; --i)
ans[i + 1] = ans[i];
ans[le] = x;
}
int solve(int n)
{
int nr = 1;
if (n == 1) {
ans[1] = 1;
return nr;
}
if (a[n] > b[n]) swap(a[n], b[n]);
if (a[n] > c[n]) swap(a[n], c[n]);
if (b[n] > c[n]) swap(b[n], c[n]);
if (a[n] != b[n] and b[n] != c[n]) {
nr = solve(n - 2) + 1;
modify(b[n], n - 2, n - 1);
modify(c[n], n - 1, n);
}
else {
nr = solve(n - 1) + 1;
modify(b[n], n - 1, n);
}
return nr;
}
int main(void)
{
int n;
in >> n;
for (int i = 2; i <= n; ++i)
in >> a[i] >> b[i] >> c[i];
out << solve(n) << endl;
for (int i = 1; i <= n; ++i)
out << ans[i] << " ";
return 0;
}