На столе лежит n кучек камней, в i-й кучке находится ai камней. Требуется раскрасить каждый камень в один из k цветов так, чтобы для каждого цвета c и для любых двух кучек i и j количества камней цвета c в кучках i и j отличались не более чем на один.
Иными словами, пусть bi, c — количество камней в i-й кучке, покрашенных в цвет c. Тогда для любых 1 ≤ c ≤ k, 1 ≤ i, j ≤ n должно выполняться |bi, c - bj, c| ≤ 1. Необязательно использовать все k цветов: если цвет c не встречается в кучке i, то bi, c полагается равным нулю.
В первой строке входных данных заданы натуральные числа n и k (1 ≤ n, k ≤ 100), разделенные пробелом — количество кучек и количество цветов соответственно.
Во второй строке заданы n натуральных чисел a1, a2, ..., an (1 ≤ ai ≤ 100), задающие количества камней в кучках.
Если раскраски камней, удовлетворяющей условию задачи, не существует, в единственной строке выведите «NO» (без кавычек).
Иначе в первой строке «YES» (без кавыечек). Далее должны следовать n строк, в i-й из них должны находиться ai чисел, разделенных пробелами. j-е (1 ≤ j ≤ ai) из этих чисел должно равняться цвету j-го камня в i-й кучке. Если возможных ответов несколько, разрешается вывести любой.
4 4
1 2 3 4
YES
1
1 4
1 2 4
1 2 3 4
5 2
3 2 4 1 3
NO
5 4
3 2 4 3 5
YES
1 2 3
1 3
1 2 3 4
1 3 4
1 1 2 3 4
Название |
---|