Задача №113723. Кратность разностей

Дан набор из n целых чисел. Требуется выбрать из них ровно k чисел таким образом, что разность любых двух выбранных чисел будет делиться на m , либо определить, что это сделать невозможно.

Числа могут повторяться как в исходном наборе, так и среди выбранных чисел, но количество вхождений любого числа среди выбранных не должно превосходить количества его вхождений в исходный набор.

Входные данные

В первой строке входных данных находятся три целых числа n , k и m ( 2 ≤ k n ≤ 100 000 , 1 ≤ m ≤ 100 000 ) — количество чисел в наборе, количество чисел, которые нужно выбрать, и требуемый делитель разности любых двух выбранных чисел.

Во второй строке входных данных находятся n целых чисел a 1 , a 2 , ..., a n ( 0 ≤ a i ≤ 10 9 ) — числа в наборе.

Выходные данные

Если выбрать k чисел требуемым образом невозможно, то в единственной строке выведите « No » (без кавычек).

Иначе, в первой строке выходных данных выведите « Yes » (без кавычек). Во второй строке выведите k целых чисел b 1 , b 2 , ..., b k — выбранные числа. Если существует несколько подходящих решений, выведите любое из них.

Примеры
Входные данные
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 
Сдать: для сдачи задач необходимо войти в систему