#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; const int N = 32; vector> ans; void init(int cur) { for (int i = cur + 1; i < N; i++) { ans.push_back(make_pair(cur, i)); } ans.push_back(make_pair(cur, N)); } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); ll k; cin >> k; for (int i = 2; i < N; i++) { init(i); } int index = 2; while (k > 0) { int p = (N - index - 1); if (k >= pow(2, p)) { ans.push_back(make_pair(1, index)); k -= pow(2, p); } index++; } cout << N << " " << ans.size() << endl; for (auto p : ans) { cout << p.first << " " << p.second << endl; } return 0; }