Черга — це структура даних, що працює за принципом "перший прийшов — перший пішов" (FIFO): елементи можна додавати лише в кінець, а видаляти — лише з початку. Це означає, що елементи видаляються у тому ж порядку, в якому були додані.
Сортування — це задача впорядкування заданого масиву чисел (або інших об'єктів) за зростанням або спаданням. Існує багато різновидів цієї задачі, і для багатьох з них є ефективні алгоритми.
У цій задачі розглядається спеціальний пристрій, який складається із вхідного потоку, вихідного потоку та черг, пронумерованих від до .
Ваше завдання: для заданої послідовності з різних чисел, що надходять із вхідного потоку, написати програму для цього пристрою, яка виведе ці числа у зростаючому порядку через вихідний потік.
Програма повинна складатися рівно з операцій. Кожна операція або зчитує число з вхідного потоку і додає його в одну з черг, або видаляє число з однієї з черг та надсилає його у вихідний потік. Зауважте, що жодна операція видалення не може бути виконана, поки не завершено всі операції додавання.
У першому рядку задано одне ціле число (1 \leq n \leq 300).
У другому рядку задано різних цілих чисел a_1, a_2, \ldots, a_n у тому порядку, в якому вони надходять із вхідного потоку (1 \leq a_i \leq 10^9 для всіх від до ).
У третьому рядку задано ціле число (1 \leq k \leq n).
Якщо відсортувати неможливо, виведіть NO.
Інакше виведіть YES, а далі рядків, що описують програму сортування. Кожен рядок повинен описувати одну операцію в одному з таких форматів:
I(j): Зчитати елемент із вхідного потоку і додати його до черги номер (1 \leq j \leq k).
R(j): Видалити елемент із черги номер (1 \leq j \leq k) і вивести його у вихідний потік.
Приклад 1
Приклад 2