[Kubic] Division

题目背景

建议先看 F 题题目背景。

题目描述

你有一个**可重集**,初始其中只有一个正整数 $n$。 你每次可以选择当前在集合中的一个正整数 $x$ 并删去,再指定一个正整数 $y$(不要求在集合中)满足 $x>y$,并往集合中加入 $y$ 和 $x-y$。 你需要保证在**任意时刻**,集合中的最大值**严格小于**集合中的最小值的 $2$ 倍。 求出你**最多**能进行多少次操作,并**输出构造方案**。 **输入数据保证最多能进行的操作次数不超过 $10^6$**。

输入输出格式

输入格式


共一行,一个整数 $n$。

输出格式


第一行,一个整数 $m$,表示你所构造的方案的操作次数。 接下来 $m$ 行,每行两个整数 $x,y$,表示一次操作($x,y$ 的意义与题面中一致)。 你需要保证 $x>y$ 且 $x$ 在当前集合中出现过。

输入输出样例

输入样例 #1

8

输出样例 #1

2
8 3
5 2

输入样例 #2

30

输出样例 #2

5
30 12
18 8
12 6
10 5
8 4

说明

对于 $100\%$ 的数据,$1\le n\le 10^9$。 ||分值|$n$| |:-:|:-:|:-:| |$\operatorname{Subtask}1$|$10$|$\le 10$| |$\operatorname{Subtask}2$|$20$|$\le 100$| |$\operatorname{Subtask}3$|$30$|$\le 10^6$| |$\operatorname{Subtask}4$|$40$|无特殊限制| ### 评分方法 以下情况将会使你在该测试点获得 $0$ 分: - 输出格式不满足要求。 - 输出多余信息(包括空格和换行符) - 构造的方案操作次数与标准答案不同。 - 构造的方案不符合题目要求。 - 时间超限。 如果没有上述情况,你在该测试点获得满分。 **保证 SPJ 占用不超过 $100\operatorname{ms},10\operatorname{MB}$** ### 样例解释 1 一种操作过程如下: `8` `3 5` `2 3 3` 可以证明没有更优的方案。 ### 样例解释 2 一种操作过程如下: `30` `12 18` `8 10 12` `6 6 8 10` `5 5 6 6 8` `4 4 5 5 6 6` 可以证明没有更优的方案。