def main(): import sys A = int(sys.stdin.readline()) if A == 0: print("2 0") return elif A == 1: print("1 0") return factors = [] current = A while current > 1: found = False start = min(current, 126) for i in range(start, 1, -1): if current % i == 0: factors.append(i) current = current // i found = True break if not found: factors.append(current) break sum_factors = sum(factors) if sum_factors + 2 > 128: print("Impossible case handled inadequately in this code.") return nodes = [[1]] current_node = 1 for k in factors: next_nodes = [] for _ in range(k): current_node += 1 next_nodes.append(current_node) nodes.append(next_nodes) final_node = current_node + 1 nodes.append([final_node]) edges = [] for i in range(len(nodes) - 1): for a in nodes[i]: for b in nodes[i+1]: edges.append((a, b)) N = final_node M = len(edges) print(N, M) for a, b in edges: print(a, b) if __name__ == "__main__": main()