A. Пожелания по курсам
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

qwqkawaii регистрируется на $$$n$$$ ($$$n\le 50$$$) курсов. В системе регистрации он может выставить приоритет для каждого курса.

Приоритеты делятся на $$$k+1$$$ ($$$k\le 20$$$) уровней, где уровень $$$1$$$ — самый высокий приоритет, а уровень $$$k+1$$$ — самый низкий.

Для первых $$$k$$$ уровней приоритета есть ограничения на вместимость: для каждого $$$1 \le i \le k$$$ можно назначить уровень приоритета $$$i$$$ не более чем $$$a_i$$$ курсам. Заметьте, что для уровня приоритета $$$k+1$$$ ограничений на вместимость нет.

Изначально $$$i$$$-й курс имеет уровень приоритета $$$b_i$$$, и гарантируется, что это начальное распределение удовлетворяет всем ограничениям на вместимость. Теперь qwqkawaii хочет перевести все свои курсы на уровень приоритета $$$k + 1$$$. Для этого он может выполнить следующую операцию не более $$$1000$$$ раз:

  • Выбрать курс $$$i$$$ ($$$1\le i\le n$$$), затем увеличить $$$b_i$$$ на $$$1$$$.

Заметьте, что:

  • Курс на уровне $$$k+1$$$ выбрать нельзя;
  • После каждой отдельной операции все ограничения на вместимость должны по-прежнему выполняться.

Ваша задача — построить корректную последовательность изменений длиной не более $$$1000$$$ операций или сообщить, что это невозможно.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 50$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

В первой строке каждого набора входных данных даны два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 50$$$, $$$1 \le k \le 20$$$) — количество курсов и количество уровней приоритета (за исключением самого низкого уровня приоритета).

Во второй строке даны $$$k$$$ целых чисел $$$a_1, a_2, \ldots, a_k$$$ ($$$1 \le a_i \le n$$$) — ограничения на вместимость для первых $$$k$$$ уровней приоритета.

В третьей строке даны $$$n$$$ целых чисел $$$b_1, b_2, \ldots, b_n$$$ ($$$1 \le b_i \le k+1$$$) — начальные уровни приоритетов курсов.

Гарантируется, что начальное распределение удовлетворяет всем ограничениям на вместимость.

Выходные данные

Для каждого набора входных данных, если достичь целевого состояния невозможно, выведите одно целое число $$$-1$$$.

Иначе в первой строке вывода выведите число операций $$$m$$$ ($$$0 \le m \le 1000$$$).

Затем выведите одну строку из $$$m$$$ целых чисел $$$u_1, u_2, \ldots, u_m$$$ ($$$1 \le u_i \le n$$$), обозначающих, что в $$$i$$$-й операции вы увеличиваете уровень приоритета $$$b_{u_i}$$$ курса $$$u_i$$$ на $$$1$$$.

Пример
Входные данные
4
3 2
2 2
1 2 2
4 2
2 2
3 3 3 3
1 1
1
1
5 3
1 2 3
1 2 4 2 3
Выходные данные
4
2 1 3 1 
0

1
1 
8
2 4 1 2 1 1 5 4
Примечание

В первом наборе входных данных изначально уровни приоритетов равны $$$[1, 2, 2]$$$. Ограничения на вместимость: $$$a_1=2$$$ и $$$a_2=2$$$. Операции выполняются следующим образом:

  1. Увеличиваем уровень курса $$$2$$$ до $$$3$$$. Теперь уровни приоритетов равны $$$[1,3,2]$$$.
  2. Увеличиваем уровень курса $$$1$$$ до $$$2$$$. Теперь уровни приоритетов равны $$$[2,3,2]$$$.
  3. Увеличиваем уровень курса $$$3$$$ до $$$3$$$. Теперь уровни приоритетов равны $$$[2,3,3]$$$.
  4. Увеличиваем уровень курса $$$1$$$ до $$$3$$$. Теперь уровни приоритетов равны $$$[3,3,3]$$$, что совпадает с целью.

Во втором наборе входных данных начальное состояние уже совпадает с целевым, поэтому операции не нужны.