10859. Найменше кратне
Відправити розв'язок
Бали:
100
Time limit:
3.0s
Memory limit:
500M
Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python
Дано число \(X\) і множина цифр \(D\). Потрібно дописати до \(X\) мінімальну кількість цифр з \(D\), щоб число, що вийшло, ділилося на \(k\). При цьому число, що вийшло, повинно бути мінімально можливим.
Формат вхідних даних
Перший рядок містить два натуральні числа \(X\) і \(k\) (\(1 ≤ X ≤ 10^{1000}\), \(2 ≤ k ≤ 10^5\)).
У другому рядку записано кількість цифр у множині \(D\).
У третьому рядку через пропуск записані ці цифри (якщо множина \(D\) порожня, то третього рядка у вхідних даних немає, що важливо при зчитуванні даних по рядках).
Формат вихідних даних
Єдиний рядок повинен містити мінімальне число, отримане з \(X\) дописуванням цифр \(D\) і кратне \(k\). Якщо такого числа немає, виведіть -1.
Приклад вхідних даних
102 101
3
1 0 3
Приклад вихідних даних
10201
Приклад вхідних даних
202 101
3
1 0 3
Приклад вихідних даних
202
Коментарі