#include using namespace std; void solve() { long long n; cin >> n; vector v(100); v[0] = 1; vector v2; for (int i = 0; i < 43; ++i) { v2 = vector (100); for (int j = 0; j < 100; ++j) { v2[j] = v[j]; if (j > 0) { v2[j] += v[j - 1]; } if (j < 99) { v2[j] += v[j + 1]; } } v = v2; } //for (auto xd : v) { //cout << xd << " "; //} vector , int> > kop; vector > harv; int licz = 0; while (n > 0) { for (int i = 0; i < 100; ++i) { if (v[i] > n) { continue; } n -= v[i]; kop.push_back({{0, licz}, 1}); for (int j = 1; j < 100; ++j) { kop.push_back({{j, licz}, 0}); } harv.push_back({i, licz}); licz += 10; break; } } int c = kop.size(); printf("%d\n", c); for (auto xd : kop) { printf("%d %d %d\n", xd.first.first, xd.first.second, xd.second); } int h = harv.size(); int d = 43; printf("%d %d\n", h, d); for (auto xd : harv) { printf("%d %d\n", xd.first, xd.second); } } int main() { int tt = 1; //scanf("%d", &tt); for (int ii = 0; ii < tt; ++ii) { solve(); } return 0; }