#include <iostream>

using namespace std;

bool G[33][33];

int main(){
    int K;
    cin >> K;
    int N, M = 0;
    N = 32;
    for(int i = 2; i <= 32; i++){
        for(int j = i+1; j <= 32; j++){
            G[i][j] = true;
            M++;
        }
    }
    for(int i = 0; i <= 30; i++){
        int m = (1<<i);
        if(K&m){
            G[1][31-i] = true;
            M++;
        }
    }
    cout << N << M << endl;
    for(int i = 1; i <= 32; i++){
        for(int j = i+1; j <= 32; j++){
            if(G[i][j]){
                cout << i << ' ' << j << endl;
            }
        }
    }
}