Олимпиадный тренинг

Задача . B. Новая техника


Задача

Темы: реализация *1100

Все техники в мире ниндзя состоят из печатей. Сейчас Наруто учит новую технику, которая состоит из \(n\cdot m\) различных печатей, обозначенных различными целыми числами. Все печати этой техники были записаны на табличке размером \(n\times m\).

Наруто потерял таблицу. Он успел выучить элементы каждой строки из этой таблички слева направо, а также элементы всех столбцов из этой таблички сверху вниз, но он не помнит порядок самих строк и столбцов. Необходимо восстановить табличку, чтобы Наруто смог доучить новую технику.

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

Первая строка содержит единственное число \(t\) (\(1\leq t\leq 100\,000\)) — количество тестовых случаев. В следующих строках содержатся описания тестовых случаев.

Первая строка каждого описания содержит два разделенных пробелом числа \(n\) и \(m\) (\(1 \leq n, m \leq 500\)) — количество строк и столбцов в табличке. Все печати в табличке занумерованы натуральными натуральными числами от \(1\) до \(n\cdot m\).

Следующие \(n\) строк содержат по \(m\) разделенных пробелом чисел — элементы произвольной строки исходной таблички слева направо.

Следующие \(m\) строк содержат по \(n\) разделенных пробелом чисел — элементы произвольного столба исходной таблички сверху вниз.

Сумма \(nm\) по всем тестовым случаям не превосходит \(250\,000\). Гарантируется, что каждая строчка таблицы встречается во входных данных ровно один раз, как и каждый столбец. Также гарантируется, что любое число от \(1\) до \(nm\) встречается ровно один раз в описании элементов строк, как и в описаниях элементов столбцов столбцах. Наконец, гарантируется, что существует таблица, подходящая под описание.

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

Для каждого тестового случая необходимо вывести \(n\) строк по \(m\) чисел, разделенных пробелом — восстановленную табличку. Можно показать, что такая табличка единственная.

Примечание

Рассмотрим первый тестовый случай. Матрица \(2 \times 3\). Даны строки и столбцы в произвольном порядке.

Одна из строк \([6, 5, 4]\). Одна из строк \([1, 2, 3]\).

Один из столбцов \([1, 6]\). Один из столбцов \([2, 5]\). Один из столбцов \([3, 4]\).

Вам нужно восстановить матрицу. Ответ дан в примере выходных данных.


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

time 1000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя