#include using namespace std; #define rep(i, a, b) for (int i = (int)(a); i < (int)(b); i++) #define rrep(i, a, b) for (int i = (int)(a); i > (int)(b); i--) #define ll long long #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define PQ priority_queue, greater> #define PQ_g priority_queue, vector>, greater>> #define chmin(a, b) a = min(a, b) #define chmax(a, b) a = max(a, b) const int d4[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; const int d8[8][2] = {{0, 1}, {1, 1}, {1, 0}, {1, -1}, {0, -1}, {-1, -1}, {-1, 0}, {-1, 1}}; void Yes(bool b) {cout << (b ? "Yes" : "No") << endl;} int main() { int n; cin >> n; cout << (2 * n - 3) << endl; rep(i, 1, n) { cout << i << ' ' << (i + 1) << ' ' << (2 * i - 1) << endl; } rep(i, 3, n + 1) { cout << 2 << ' ' << i << ' ' << (2 * i - 2) << endl; } rep(i, 1, n + 1) { rep(j, i + 1, n + 1) { if (i == 1) { cout << (j - 1) << ' '; rep(k, 1, j) cout << k << ' '; cout << endl; } else { cout << (j - 2) << ' '; rrep(k, i, 2) cout << (k - 1) << ' '; cout << (n - 2 + i) << ' '; rep(k, i + 1, j) cout << k << ' '; cout << endl; } } } }