Problem A: 排兵布阵

Memory Limit:128 MB Time Limit:2.000 S
Judge Style:Text Compare Creator:
Submit:247 Solved:77

Description

佳佳在玩一个有趣的单机塔防游戏。游戏的地图是一个规模为N*N的巨大沼泽地,在沼泽地上有一些突出的小岛以 ’#’ 表示,佳佳想要在岛上放恰好K低射炮台,已知炮台的攻击范围是一个十字形,如下所示:

OOPOO

OOPOO

PPPPP

OOPOO

OOPOO

炮台的放置必须满足下列两个要求:

1.炮台必须架设在小岛上,不可以放置在沼泽地上(沼泽地用’.’表示)

2.炮台与炮台之间不可以相互攻击,也就是说任意一个炮台不可以在其它炮台的射程范围之内。

现在佳佳想要知道,在这张地图上恰好放置K个炮台有几种不同的方案呢?

Input

输入有多行,第一行为两个正整数N、K,表示地图的大小为N*N,佳佳需要在地图上放置恰好K个炮台。

接下来有N行字符串,每行有N个字符,仅仅包含’.’和’#’(字符间没有空格),描述地图。

Output

输出共 1行,表示方案数。

Sample Input Copy

2 1
#.
.#

Sample Output Copy

2

HINT

【输入输出样例2】

chess.in

chess.out

4 4

...#

..#.

.#..

#...

1


【数据范围】

     对于100%的数据1N 81K N