아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

IQ тест для роботов

시간 제한2초메모리 제한512 MB

요약
질의된 칸마다 같은 행과 같은 열에서 색이 다른 두 칸을 맨해튼 거리가 최소가 되도록 고르고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 5점

유형
구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

Лёша готовит своего робота к тестированию IQ. В 2116 году тестирование IQ для роботов проходит следующим образом. Роботу демонстрируется прямоугольная таблица, содержащая nn строк и mm столбцов, каждая клетка которой покрашена в какой-либо цвет.

Затем экзаменатор qq раз просит робота выполнить следующее задание. Экзаменатор указывает на некоторую клетку в таблице, а робот в качестве ответа должен выбрать две другие клетки. При этом должны выполняться следующие условия.

  • Ни одна из выбранных роботом клеток не должна совпадать с указанной экзаменатором.
  • Одна из выбранных клеток должна лежать в одном столбце с указанной, а другая --- в одной строке.
  • Цвета двух выбранных роботом клеток должны быть различны.
  • Расстояние между выбранными клетками должно быть минимально. Расстояние между клетками (r_1,c_1)(r\_1, c\_1) и (r_2,c_2)(r\_2, c\_2) определяется как ∣r_1−r_2∣+∣c_1−c_2∣|r\_1-r\_2|+|c\_1-c\_2|.

Бывает, что выбрать две клетки описанным образом невозможно, в этом случае в качестве ответа на задание робот должен сообщить об этом.

Лёша хочет научить своего робота справляться с заданием как можно лучше. Помогите ему запрограммировать робота.

입력

В первой строке находятся целые числа nn и mm --- количество строк и столбцов в таблице, соответственно (2≤n,m≤500,0002 \le n, m \le 500\\,000; n×m≤106n\times m \le 10^6).

Следующие nn строк содержат по mm строчных латинских букв --- описание таблицы, jj-й символ ii-й из этих строк задает цвет клетки (i,j)(i, j). Одинаковые буквы обозначают одинаковый цвет, а разные --- разный.

В следующей строке находится число qq --- количество вопросов экзаменатора (1≤q≤200,0001 \le q \le 200\\,000).

Следующие qq строк содержат описание вопросов. В ii-й из этих строк находятся два числа x_ix\_i и y_iy\_i --- номер строки и столбца, на пересечении которых находится клетка, для которой требуется найти ответ (1≤x_i≤n1 \le x\_i \le n, 1≤y_i≤m1 \le y\_i \le m).

출력

Для каждого вопроса выведите ответ в отдельной строке. Если невозможно найти пару клеток, удовлетворяющих всем условиям, выведите -1. Иначе выведите четыре числа r_1r\_1, c_1c\_1, r_2r\_2, c_2c\_2 --- описание двух выбранных клеток. Если оптимальных ответов несколько, выведите любой.

예제1

  1. 예제 1

    입력
    3 4
    abbb
    baab
    babb
    4
    1 1
    1 4
    3 1
    3 4
    
    예상 출력
    -1
    1 1 2 4
    3 2 2 1
    2 4 3 2