Вам дана десятичная дробь, то есть число, содержащее целую часть и дробную часть, в котором обе части записаны в десятичной системе счисления. К сожалению, в ней может быть период, а работать с дробями с периодами не очень удобно.
Дробь с периодом записывается в формате $$$a.b(c)$$$, что соответствует $$$a.bccc\ldots$$$, где $$$c$$$ повторяется бесконечное число раз. Например, $$$1.25(13)$$$ задает число $$$$$$1 + \tfrac{2}{10} + \tfrac{5}{10^2} + \tfrac{1}{10^3} + \tfrac{3}{10^4} + \tfrac{1}{10^5} + \tfrac{3}{10^6} + \ldots$$$$$$
Найдите минимальное положительное основание системы счисления, в которой то же самое число задается непериодичной дробью.
Число представляется в виде непериодичной дроби в системе счисления с основанием $$$c$$$, если оно представимо в виде конечной суммы $$$\sum\limits_{i} \frac{a_i}{c^i}$$$. В частности, мы считаем, что для целого числа ответом на задачу будет $$$c = 1$$$.
В первой строке ввода через пробел перечислены три целых числа $$$n$$$, $$$m$$$ и $$$k$$$ — количество цифр в целой части, непериодичной дробной части и в периоде, соответственно ($$$1 \le n \le 12$$$; $$$0 \le m, k \le 12$$$).
Во второй, третьей и четвертой строках даны целые числа $$$a$$$, $$$b$$$ и $$$c$$$ — целая часть, дробная часть и период числа, соответственно ($$$0 \le a, b, c \le 10^{12}$$$).
Обратите внимание, что запись каждой из частей может быть как пустой строкой, так и числом с ведущими нулями, так как количество занимаемых позиций в числе имеет значение ($$$1.01 \neq 1.1$$$).
Выведите единственное целое число — минимальное основание системы счисления, в которой данное число записывается без периода. Выведите ответ по модулю $$$10^9 + 7$$$.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Ограничения | Необходимые подзадачи |
| 0 | – | примеры из условия | |
| 1 | 10 | $$$m = 0$$$, $$$k \le 1$$$ | |
| 2 | 10 | $$$m \le 1$$$, $$$k \le 1$$$ | 1 |
| 3 | 14 | $$$m \le 6$$$, $$$k = 0$$$ | |
| 4 | 16 | $$$m = 0$$$, $$$k \le 6$$$ | 1 |
| 5 | 23 | $$$m + k \le 12$$$ | 0 – 4 |
| 6 | 27 | $$$m, k \le 12$$$ | 0 – 5 |
2 1 0101
10
1 2 10250
2
1 0 115
3
В C++ для считывания строки до конца можно использовать std::getline.