#include<iostream>
#include<vector>
using namespace std;

void drawpascal(int s, int x, int y) {
	for(int i = 0; i <= 100; i++) {
		for(int j = 0; j <= 100; j++) {
			cout<<x+i<<" "<<y+j<<" "<<0<<endl;
		}
	}
	for(int i = 1; i <s; i++) {
		cout<<x-i<<" "<<y<<" "<<0<<endl;
	}
	cout<<x-s<<" "<<y<<" "<<1<<endl;

}

vector<int> outx;
vector<int> outy;

void getpascal(int nr) {
	int x = 105*(100-nr);
	int y = 0;
	for(int i = 0; i <= nr; i++) {
		outx.push_back(x+i);
		outy.push_back(nr - i);
	}
}
int main() {
	ios_base::sync_with_stdio(0);
	long long n;
	cin>>n;
	for(int i = 0; i <= 100; i++) {
		drawpascal(i+1,i*105, 0);
	}
	int tmp = 0;
	while(n) {
		if(n%2) getpascal(tmp);
		tmp++;
		n/=2;
	
	}
	
	cout<<outx.size()<<" "<<100;
	cout<<endl;
	for(int i =0 ; i < outx.size();i++) cout<<outx[i]<<" "<<outy[i]<<endl;
}
