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

Задача . E. Парковка


Петя скучает на работе и от нечего делать разглядывает парковку у офиса. Парковка сверху выглядит как таблица n × m (ячейка таблицы соответствует одному парковочному месту). Некоторые места на парковке заняты, а остальные свободны.

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

Ваша задача — по состоянию парковки в начальный момент времени и данным о том, где паркуются прибывающие машины, восстановить то, что Петя записал себе в блокнот. Поскольку рабочий день еще в разгаре, с парковки никто не уезжает.

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

В первой строке записаны три целых числа n, m и k — размеры парковки и количество прибывших машин после начала Петиных наблюдений (1 ≤ n, m, k ≤ 2000). Каждая из следующих n строк содержит по m символов 'X' и '.', где 'X' означает занятое место, а '.' — свободное. Каждая из следующих k строк содержит пару чисел xi, yi — номер строки и номер столбца места, которое занимает очередная машина (1 ≤ xi ≤ n, 1 ≤ yi ≤ m). Гарантируется, что это место было свободно. Считайте, что очередная машина заезжает на парковку только тогда, когда предыдущая уже заняла свое место на парковке.

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

Выведите k чисел — длину стороны максимального квадрата из свободных клеток в таблице после заезда очередной машины.


Примеры
Входные данныеВыходные данные
1 7 8 4
........
X.....X.
........
........
.X......
........
........
1 5
6 4
3 5
4 6
5
4
4
3

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

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