B. Раскраска шаров
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

На столе лежит 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