Трансформация перестановки

Ограничение по времени: 1.000 секунд

Ограничение по памяти: 100.000 мегабайт

Федор работает в отделе трансформации перестановок. Сегодня Федор должен решать такую задачу: нужно из перестановки [p1, p2, ..., pn] целых чисел 1, 2, ..., n получить перестановку [q1, q2, ..., qn], используя для преобразования не более n3 операций k-переноса.

Пусть задан массив длиной n. Операция k-переноса с параметрами (a,b) определяется следующим образом: отрезок из k подряд идущих элементов массива, начинающийся с элемента с индексом a, вырезается из массива и вставляется обратно, начиная с индекса b.

Более формально: пусть задан массив [t1, t2, ..., tn] и два числа a и b (1 ⩽ a, b ⩽ n − k + 1). Рассмотрим вспомогательный массив [r1, r2, ... , rn−k], который состоит из чисел [t1, t2, ..., ta−1, ta+k, ta+k+1, ..., tn]. Тогда результатом k-переноса с параметрами (a, b) для массива t называется массив, состоящий из чисел [r1, r2, ..., rb−1, ta, ta+1, ..., ta+k−1, rb, rb+1, ..., rn−k].

Фёдор не знает, как подступиться к новой задаче, поэтому просит вас помочь ему в этом непростом деле!

Вам необходимо решить задачу для t наборов входных данных.

Формат входных данных

Первая строка содержит одно целое число t (1 ⩽ t ⩽ 100) - количество наборов входных данных.

Каждый из наборов входных данных описывается в трёх строках. Первая строка содержит целые числа n и k (1 ⩽ k ⩽ n ⩽ 100).

Вторая строка содержит n различных целых чисел p1, p2, ..., pn (1 ⩽ pi ⩽ n) - перестановку p.

Третья строка содержит n различных целых чисел q1, q2, ..., qn (1 ⩽ qi ⩽ n) - перестановку q.

Гарантируется, что сумма n по всем наборам входных данных не превосходит 100.

Формат выходных данных

Выведите ответы для каждого набора входных данных. Формат ответа для одного набора входных данных описан ниже.

Если из перестановки p1, p2, ..., pn невозможно получить перестановку q1, q2, ..., qn с помощью k-переносов, требуется вывести NO в единственной строке вывода.

Иначе первой строкой вывода должно быть слово YES.

Во второй строке вывода должно находиться единственное число m - количество выполненных k-переносов для получения перестановки q из перестановки p (0 ⩽ m ⩽ n3). Обратите внимание, что вам не требуется минимизировать число m. Гарантируется, что если перестановку q возможно получить из перестановки p с помощью k-переносов, то существует решение, требующее не более, чем n3 действий.

В каждой из следующих m строк требуется вывести параметры a и b для очередного k-переноса.

Пример

input output
3
2 1
2 1
2 1
4 2
1 2 3 4
1 2 4 3
3 2
2 1 3
1 3 2
YES
0
NO
YES
2
1 2
1 2

Примечание

В третьем наборе входных данных перестановку q из перестановки p можно получить и другим способом - использовав один k-перенос с параметрами a = 2, b = 1.

Войдите, что бы отправлять решения