#include using namespace std; using pii = pair; using ll = long long; const int N = 2000010, MOD = 998244353, INF = 0x3f3f3f3f; int n, m, w[N]; int a[N], b[N]; void solve() { set st; for (int i = 1; i <= 333; i++) st.insert(i * i); scanf("%d", &n); printf("%d\n", n * 2 - 3); int idx = 0; for (int i = 2; i < n + 1; i++) printf("%d %d %d\n", i - 1, i, i * 2 - 3), a[i] = ++idx; for (int i = 3; i < n + 1; i++) printf("%d %d %d\n", 2, i, (i - 1) << 1), b[i] = ++idx; for (int i = 2; i < n + 1; i++) { int sum = 0; printf("%d ", i - 1); for (int j = 2; j <= i; j++) printf("%d ", a[j]), sum += j * 2 - 3; puts(""); assert(st.count(sum)); } for (int i = 2; i < n + 1; i++) for (int j = i + 1; j < n + 1; j++) { printf("%d ", j - 2); int sum = 0; for (int k = i; k >= 3; k--) printf("%d ", a[k]), sum += k * 2 - 3; printf("%d ", b[i + 1]), sum += i << 1; for (int k = i + 2; k <= j; k++) printf("%d ", a[k]), sum += k * 2 - 3; puts(""); assert(st.count(sum)); } } int main() { int T = 1; // cin >> T; while (T--) solve(); return 0; }