指挥官想要在战场上建造一座新的生产建筑.
整个战场可以视为一个

行

列的二维网格,有一些网格中已经建造了一些生产建筑,还有一些网格是矿区,斜坡,悬崖等无法建造建筑的地方,剩下的位置是可以建造建筑的空地.
现在指挥官想建造
一座新的占据

行

列网格的矩形建筑,但是必须要满足以下要求.
-
建筑占据的所有网格都必须为空地.
-
新的建筑必须在已有的建筑基础上延伸建造,即新建筑与距离其最近的已有建筑之间距离不能超过
.
把第

行,第

列的网格的表示为
)
,则
)
与
)
之间的距离为

.
新矩形建筑与
)
之间的距离为矩形建筑占据的所有网格与
)
之间的距离中的最小值.
你是指挥官的顾问,现在指挥官想让你帮忙计算建造
一座占据

行

列网格的矩形新建筑的方案数量.
对于两种方案,如果矩形新建筑最左上角的网格位置是不同的,则我们认为这两种建造方案是不同的.
输入描述:
本题含有多组测试数据,
第
行包含一行一个正整数
,表示测试数据的数目,然后输入
组独立的数据.
每组数据第
行输入一行五个以空格分隔的正整数
,分别表示战场的行数和列数,新建筑占据的行数和列数,以及已有建筑能延伸的最大距离.
数据范围满足
.
接下来输入
行,每行
个字符表示战场的情况.第
行的第
个字符代表坐标为
的方格情况,如果字符是'x',则表示该位置是已有的生产建筑,如果字符是'#'则表示该位置是矿区,斜坡,悬崖等无法建造建筑的地方,如果字符是'.',则表示该位置是空地.
保证所有测试数据的
之和不超过
.
输出描述:
对于每组测试数据输出一行一个非负整数表示建造方案的数量.
示例1
说明
对于样例,仅有
种合法的建造方案,即让新矩形建筑的左上角位于第
行第
列的网格.
矩形建筑左上角位于第
行第
列的网格时,矩形一共包含
个网格,分别为
,这
个网格都是空地,并且空地
距离已有建筑
的距离为
,因此满足建造新建筑的条件.
如果矩形建筑左上角位于第
行第
列的网格,虽然矩形包含的
个网格也都是空地,但是这
个网格距离唯一的已有建筑
的距离都超过
,因此不是一种合法的建造方案.