Одна из первых задач K1o0n по программированию выглядела так: «У Noobish_Monk есть \(n\) \((1 \le n \le 100)\) друзей. На день рождения каждый из них подарил \(a\) \((1 \le a \le 10000)\) яблок. Обрадовавшись такому подарку, Noobish_Monk вернул \(b\) \((1 \le b \le \min(10000, a \cdot n))\) яблок друзьям. Сколько яблок осталось у Noobish_Monk?»
K1o0n написал решение, но случайно считал значение \(n\) как строку, поэтому значение \(n \cdot a - b\) было посчитано по-другому. Конкретно:
- при умножении строки \(n\) на число \(a\) он получит строку \(s=\underbrace{n + n + \dots + n + n}_{a\ \text{раз}}\)
- при вычитании из строки \(s\) числа \(b\), из неё удалятся последние \(b\) символов, если \(b\) больше или равно длине строки \(s\), то она станет пустой.
Узнав об этом, ErnKor стало интересно, сколько для данного \(n\) существует пар \((a, b)\), удовлетворяющих ограничениям задачи, на которых решение K1o0n выдаёт правильный ответ.
«Решение выдаёт правильный ответ» означает, что оно выводит непустую строку, и эта строка при переводе в целое число равна правильному ответу, то есть значению \(n \cdot a - b\).
Выходные данные
Для каждого набора входных данных выведите ответ в следующем формате:
В первой строке выведите число \(x\) — количество плохих тестов для заданного \(n\).
В следующих \(x\) строках выведите по два числа \(a_i\) и \(b_i\) — такие числа, что решение K1o0n выдает на тест «\(n\) \(a_i\) \(b_i\)» выдаёт правильный ответ.
Примечание
В первом примере \(a = 20\), \(b = 18\) подходят, так как «\(\text{2}\)» \(\cdot 20 - 18 =\) «\(\text{22222222222222222222}\)» \(- 18 = 22 = 2 \cdot 20 - 18\)