在北欧国家的山区露营时,拥有可靠的水源可能关乎生死。传统上,北欧露营者总是将帐篷搭建在水源上方,这样无需走出帐篷即可随时取水。北欧人的另一个奇特传统是他们的帐篷:他们只使用方形帐篷。
北欧山区的营地可能非常崎岖且多岩石。Jon 目前正在搭建一个新的营地,并已经勘测了营地内所有可用的地点。将营地建模为一个 $N \times M$ 的网格,Jon 给了你一份所有崎岖且不可用的单元格列表。Jon 现在想找出在他营地上能搭建的最大的帐篷,该帐篷只能使用平坦、可用的单元格,并且必须覆盖给定的水源。
对于每一个水源,你能否帮助 Jon 确定能覆盖该特定水源的最大的方形帐篷的面积?
图 1:第二个样例测试用例,以及覆盖位于 $(3, 2)$ 的水源的最大的方形帐篷的区域。这也恰好是覆盖位于 $(5, 4)$ 的水源的最大的方形帐篷。
输入格式
输入的第一行包含两个空格分隔的整数 $N$ 和 $M$ ($1 \le N, M$)。接下来是 $N$ 行,每行包含 $M$ 个字符,表示网格。每个字符要么是 ‘#’,要么是 ‘.’,其中 ‘.’ 表示营地的平坦区域,‘#’ 表示岩石覆盖的不可用区域。
接下来是一行,包含一个整数 $Q$,表示 Jon 考虑的水源数量。接下来的 $Q$ 行,每行包含两个整数 $x$ 和 $y$ ($1 \le x \le N, 1 \le y \le M$),给出水源的位置 $(x, y)$(水源位于网格的第 $x$ 行,第 $y$ 列)。
输出格式
对于 Jon 考虑的每个水源,按照输入中的顺序,输出能搭建在平坦、可用单元格上且覆盖该特定水源的最大的方形帐篷的地面面积。
注意,帐篷的搭建方式不能使其部分覆盖一个单元格。它要么完全覆盖该单元格,要么与该单元格的交集为空。
子任务
| 子任务 | 分数 | 数据范围 |
|---|---|---|
| 1 | 20 | $N, M \le 50, Q \le 1000$ |
| 2 | 25 | $N, M \le 800, K \le 10^5, Q \le 10^5$ |
| 3 | 20 | $N \le 10, M \le 2000, Q \le 500$ |
| 4 | 35 | $N, M \le 2000, K \le 10^5, Q \le 10^5$ |
样例
样例输入 1
3 3 #.. ... .## 2 1 3 2 1
样例输出 1
4 1
样例输入 2
5 5 #...# ..#.. ..... #...# #.... 5 3 2 2 5 5 4 4 5 1 3
样例输出 2
9 4 9 0 1