#include #include #define M 1000000 #define N 100 using namespace std; int main() { unsigned long long int n; cin >> n; cout<< 110000 << endl; for (int i = 0; i < 200; i = i + 2){ cout<< i << " " << 0 << " " << 1 << endl; for(int j = 1; j < 100; j++){ cout<< i << " " << j << " "<< 0 << endl; } } for (int i = 0; i < 200000; i = i + 2){ cout<< -2 << " " << i << " " << 1 << endl; } unsigned long long int a[N], b[N], c[N]; int x[10000], y[10000]; int x1 = 0, y1 = 0; a[0] = 1; a[1] = 0; b[0] = 1; b[1] = 1; unsigned long long int szam = 0; for (int i = 2; i < N; i++){ a[i] = 0; b[i] = 0; } unsigned long long int sum = 0; int kul = 0; bool jel = true; int nap = 1; while (jel && nap < 100){ sum = 0; szam = 0; for (int i = 0; i < 2 * N; i = i + 2){ for (int j = 0; j < N; j++){ if (sum + b[j] < n){ sum += b[j]; szam++; x[x1] = i; y[y1] = j; x1++; y1++; kul = n - sum; } } } if (n - sum < N) jel = false; for (int i = 0; i < N; i++) c[i] = b[i]; b[0] = a[0] + a[1]; b[N-1] = a[N-2] + a[N-1]; for (int i = 1; i < N-1; i++) b[i] = a[i-1] + a[i] + a[i+1]; for (int i = 0; i < N; i++) a[i] = c[i]; nap++; } cout<< (x1 + kul) << " " << nap-1 << endl; for (int i = 0; i < x1; i++){ cout << x[i] << " " << y[i] << endl; } for (int i = 0; i < 2*kul; i = i + 2){ cout<< -2 << " "<< i << endl; } }