#!/usr/bin/ python3.8 import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines def make_graph(N, K, flag=False): if N == 1: return if flag: for i in range(1, N): yield (i, N) if K % 2 == 0: yield from make_graph(N - 1, K // 2, flag=True) if K % 2 == 1: yield from make_graph(N - 1, K // 2, flag=False) else: for i in range(2, N): yield (i, N) if K % 2 == 0: yield from make_graph(N - 1, K // 2, flag=False) if K % 2 == 1: yield from make_graph(N - 1, (K + 1) // 2, flag=True) K = int(read()) G = tuple(make_graph(32, K)) M = len(G) print(32, M) for x, y in G: print(x, y)