## https://yukicoder.me/problems/no/1880 def main(): A = int(input()) if A == 0: print("2 0") return array = [] while A > 0: array.append(A % 2) A //= 2 n = 0 vertex = [ ] for i in range(len(array)): ar = [n, n + 1, n + 2] n += 3 vertex.append(ar) vertex.append([n]) n += 1 edges = [] for i in range(len(vertex) - 2): for v1_index in range(2): for v2_index in range(2): v = vertex[i][v1_index] w = vertex[i + 1][v2_index] edges.append((v, w)) v = vertex[i][-1] w = vertex[i + 1][-1] edges.append((v, w)) for i in range(len(array)): if array[i] == 1: for v1_index in range(2): v = vertex[i][v1_index] w = vertex[i + 1][-1] edges.append((v, w)) print(n, len(edges)) for v, w in edges: print(v + 1, w + 1) if __name__ == '__main__': main()