E. Парковка
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

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

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

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

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

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

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

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

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