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

Задача . C. Перестановка столбцов


Как известно каждому участнику проекта crowdforces, Тётя Люсине — чуть ли не самый активный человек на земле. Её голова всё время забита какими-то новыми on-ramp задачами. Конечно, даже ей не всегда удаётся придумать что-то хорошее, и в этот раз у неё получилась таска со сказкой, а именно — про таблицы. Ни один ревьювер потом не смог решить эту задачу, а вы сможете?

Дана таблица с \(n\) строками и \(m\) столбцами, где в каждой ячейке написано целое положительное число. Назовём таблицу хорошей, если последовательность чисел в каждой строке является отсортированной в порядке неубывания. Иными словами, для каждого \(1 \le i \le n\) и \(2 \le j \le m\) выполняется следующее условие: \(a_{i,j} \ge a_{i, j-1}\).

Необходимо ровно один раз выбрать столбцы с номерами \(i\) и \(j\) (не обязательно различными), \(1 \le i, j \le m\), и поменять их местами.

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

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

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

Первая строка каждого набора входных данных содержит два целых числа \(n\) и \(m\) (\(1 \le n, m \le 2 \cdot 10^5\)) — количество строк и столбцов таблицы соответственно.

Каждая из следующих \(n\) строк содержит по \(m\) целых чисел, \(j\)-й элемент \(i\)-й строки равен \(a_{i,j}\) — это число, записанное в \(j\)-й ячейке \(i\)-й строки (\(1 \le a_{i,j} \le 10^9\)).

Гарантируется, что сумма \(n \cdot m\) по всем наборам входных данных не превышает \(2 \cdot 10^5\).

Если есть несколько правильных ответов, вы можете вывести любой из них.

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

Если после перестановки невозможно получить хорошую таблицу, то выведите одно число \(-1\).

В противном случае выведите \(2\) числа — номера столбцов, которые необходимо переставить, чтобы получить хорошую таблицу.

Если существуют несколько решений, выведите любое из них.

Примечание

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

Во втором наборе входных данных нельзя сделать данную таблицу хорошей.

В третьем наборе входных данных необходимо поменять местами первый и второй столбец, тогда таблица станет хорошей.


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

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

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