58a89d2e27aa99103338071799e3ebd5e75bdf025cfdf0a4c5f6b67eb6126577
// https://szkopul.edu.pl/problemset/problem/krSKKe-crppvN2OV2aw1MUYm/site/?key=statement
// OIG XVI (1 etap)
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
long long N = 0;
cin >> N;
long long suma = (N * (N + 1)) / 2;
long long ilosc_dzieci = suma / N;
cout << ilosc_dzieci << endl;
if (N % 2 == 0) {
for (int i = 1; i <= ilosc_dzieci; i++) {
cout << "2 " << i << " " << N - i + 1 << endl;
}
} else {
cout << "1 " << N << endl;
for (int i = 1; i <= ilosc_dzieci - 1; i++) {
cout << "2 " << i << " " << N - i << endl;
}
}
return 0;
}