#include using namespace std; typedef long long ll; typedef long double ld; typedef pair ii; #define pb push_back #define all(x) (x).begin(), (x).end() #define sqr(x) ((x) * (x)) #define X first #define Y second #define FOR(i, a, b) for (int i = (a); i < (b); ++i) #define REP(i, n) FOR (i, 0, n) #define TRACE(x) cout << #x << " = " << x << endl #define _ << " _ " << #define debug(...) fprintf(stderr, __VA_ARGS__) #define MOD 1000000007LL const int N = 100; ll a[2][N]; const int RR = 40; vector rj; int main() { a[1][0] = 1; a[1][3] = 1; a[1][7] = 1; a[1][12] = 1; a[1][18] = 1; a[1][25] = 1; a[1][33] = 1; a[1][42] = 1; a[1][52] = 1; for (int i = 0; i < RR; i++) { for (int j = 0; j < N; j++) { if (j == 2 || j == 6 || j == 11 || j == 17 || j == 24 || j == 32 || j == 41 || j == 51) { if (i < RR - 1) continue; //cout<= a[lp][i]) { if (n2 == 0) break; n2 -= a[lp][i]; rj.pb(i); } } int rs = rj.size(); assert(41 * rs < 200000); printf("%d\n", 41 * rs); for (int i = 0; i < rs; i++) { printf("%d %d %d\n", i * 2, 0, 1); for (int j = 1; j < 41; j++) { printf("%d %d %d\n", i * 2, j, 0); } } printf("%d %d\n", rs, RR); for (int i = 0; i < rs; i++) { printf("%d %d\n", i * 2, rj[i] - 52); } /*ll n; scanf("%I64d", &n); for (ll i = 0; i < 31; i++) { if (n & (1 << i)) { } }*/ return 0; }