#CF1992E. Novice's Mistake

Novice's Mistake

新手的错误

时间限制:3 秒
空间限制:256 MB

K1o0n 的第一道编程题长这样:「Noobish_Monk 有 nn1n1001\le n\le100)个朋友。每个人给了他 aa1a100001\le a\le10000)个苹果作为生日礼物。Noobish_Monk 很高兴,返还了 bb1bmin(10000,an)1\le b\le\min(10000, a\cdot n))个苹果给朋友们。Noobish_Monk 还剩多少个苹果?」

K1o0n 写了一个解答,但意外地把 nn 当成字符串处理,因此 nabn\cdot a-b 被计算成了另一种样子:

  • 用字符串 nn 乘以整数 aa 时,他会得到字符串 s=n+n++na 次s = \underbrace{n+n+\dots+n}_{a\text{ 次}}
  • 从字符串 ss 中减去整数 bb 时,会从 ss 的末尾删除 bb 个字符。若 bb 大于或等于 ss 的长度,ss 将变为空串。

得知此事后,ErnKor 很好奇对于给定的 nn,有多少对 (a,b)(a,b) 满足题目约束,且 K1o0n 的解法恰好给出正确答案。

「解法给出正确答案」是指:输出的字符串非空,且将其转换为整数后,等于正确的答案,即 nabn\cdot a - b 的值。

输入格式

第一行包含一个整数 tt1t1001\le t\le 100)—— 测试数据组数。

对于每组数据,一行一个整数 nn1n1001\le n\le 100)。

保证所有测试数据中的 nn 互不相同。

输出格式

对于每组数据,按以下格式输出答案:

第一行输出一个整数 xx —— 对于该 nn 的坏测试组数(即满足条件的 (a,b)(a,b) 对数)。

接下来 xx 行,每行输出两个整数 aia_ibib_i —— 使得 K1o0n 的程序在测试 「nn aia_i bib_i」上给出正确答案的整数。

样例输入

3
2
3
10

样例输出

3
20 18
219 216
2218 2214
1
165 162
1
1262 2519

样例解释

在第一个样例中,a=20a=20b=18b=18 是可行的,因为 "2" 2018=\cdot 20 - 18 = "22222222222222222222" 18=22=22018-18 = 22 = 2\cdot20-18