#include<bits/stdc++.h>
using namespace std;
#define fs first
#define sc second
#define pb push_back
#define mp make_pair
#define eb emplace_back
#define ALL(A) A.begin(),A.end()
#define RALL(A) A.rbegin(),A.rend()
typedef long long ll;
typedef pair<ll,ll> P;
const ll mod=1000000007;
const ll LINF=1LL<<60;
const int INF=1<<30;

int main(){
	int l;cin>>l;
	int keta = log2(l) + 1;
	vector<P> g;
	vector<int> dist;
	// cout << keta << endl;
	// cout << fixed << setprecision(10) << pow(2.0,20.0) << endl;
	for(int i = 1; i < keta; i++) {
		g.pb(mp(i,i + 1));
		g.pb(mp(i,i + 1));
		dist.pb(pow(2,i - 1));
		dist.pb(0);
	}
	for(int i = keta - 1; i > 0; i--) {
		if (l - pow(2,i - 1) >= pow(2,keta - 1)){
			g.pb(mp(i, keta));
			dist.pb(l - pow(2,i - 1));
			l -= pow(2,i -1);
			// cout << l << endl;
		}
	}
	cout << keta << " " << g.size() << endl;
	for(int i = 0; i < g.size(); i++) {
		cout << g[i].fs << " " << g[i].sc << " " << dist[i] << endl; 
	}
	return 0;
}