Дан набор из n целых чисел. Требуется выбрать из них ровно k чисел таким образом, что разность любых двух выбранных чисел будет делиться на m, либо определить, что это сделать невозможно.
Числа могут повторяться как в исходном наборе, так и среди выбранных чисел, но количество вхождений любого числа среди выбранных не должно превосходить количества его вхождений в исходный набор.
В первой строке входных данных находятся три целых числа n, k и m (2 ≤ k ≤ n ≤ 100 000, 1 ≤ m ≤ 100 000) — количество чисел в наборе, количество чисел, которые нужно выбрать, и требуемый делитель разности любых двух выбранных чисел.
Во второй строке входных данных находятся n целых чисел a1, a2, ..., an (0 ≤ ai ≤ 109) — числа в наборе.
Если выбрать k чисел требуемым образом невозможно, то в единственной строке выведите «No» (без кавычек).
Иначе, в первой строке выходных данных выведите «Yes» (без кавычек). Во второй строке выведите k целых чисел b1, b2, ..., bk — выбранные числа. Если существует несколько подходящих решений, выведите любое из них.
3 2 3
1 8 4
Yes
1 4
3 3 3
1 8 4
No
4 3 5
2 7 7 7
Yes
2 7 7
Название |
---|