CF BUDDY
← Problems·

648E · Собери число

2300 · graphs, shortest paths

Problem: Дано целое неотрицательное число k и n неотрицательных целых чисел a1, a2, ..., an. Записывая некоторые из этих чисел друг за другом в произвольном порядке и, возможно, используя какие-то из них несколько раз (а какие-то вообще не используя), требуется составить кратчайшее (наименьшее по количеству цифр) число, делящееся на k, или определить, что это невозможно.

Input Format: В первой строке содержится два целых числа n (1 ≤ n ≤ 1 000 000) и k (1 ≤ k ≤ 1000) — количество чисел и требуемый делитель соответственно.

Во второй строке содержится n целых чисел a1, a2, ..., an (0 ≤ ai ≤ 109).

Output Format: Если ответ существует, в первой строке выведите «YES» (без кавычек), а во второй строке — искомое кратчайшее число без ведущих нулей. В случае если ответа не существует, в единственной строке выходных данных выведите «NO» (без кавычек).

Sample Cases

Case 1

Input

2 3
123 1

Output

YES
123

Case 2

Input

1 10
1

Output

NO

Case 3

Input

3 4
1 2 3

Output

YES
12

Case 4

Input

3 777
12 23 345

Output

YES
121212

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback