В качестве сувениров на соревновании по программированию было решено вручить футболки. Всего в типографии были напечатаны футболки шести размеров: S, M, L, XL, XXL, XXXL (размеры перечислены в порядке возрастания). Для каждого размера от S до XXXL вам известно количество футболок такого размера.
Во время регистрации организаторы попросили каждого из n участников указать размер футболки. Если участник колебался между двумя размерами, то он мог указать два соседних — это означает, что ему подойдет футболка любого из двух размеров.
Напишите программу, которая определит, возможно ли из напечатанных в типографии футболок сделать подарок каждому участнику соревнования. Конечно, каждому участнику должна достаться футболка его размера:
- требуемого размера, если указан один размер;
- любого из двух размеров, если указаны два соседних размера.
В случае положительного ответа программа должна найти любой из вариантов раздачи футболок.
Выходные данные
Если ответа не существует выведите «NO» (без кавычек).
В противном случае, в первой строке выведите «YES» (без кавычек). В следующих n строках выведите размеры футболок, которые получат участники. Порядок участников должен совпадать с тем порядком, который задан во входных данных.
Если решений несколько, выведите любое.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
0 1 0 1 1 0 3 XL S,M XL,XXL
|
YES
XL
M
XXL
|
|
2
|
1 1 2 0 1 1 5 S M S,M XXL,XXXL XL,XXL
|
NO
|