{"trustable":false,"sections":[{"title":"","value":{"format":"MD","content":"在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 $k$ 个棋子的所有可行的摆放方案 $C$。"}},{"title":"输入","value":{"format":"MD","content":"输入含有多组测试数据。\n\n每组数据的第一行是两个正整数 $n, k(k\\le n\\le 8)$,用一个空格隔开,表示棋盘形如 $n\\times n$ 的矩阵,以及摆放棋子的数目。 当输入为 `-1 -1` 时表示输入结束。\n\n随后的 $n$ 行描述了棋盘的形状:每行有 $n$ 个字符,其中 `#` 表示棋盘区域,`.` 表示空白区域(数据保证不出现多余的空白行或者空白列)。"}},{"title":"输出","value":{"format":"MD","content":"对于每一组数据,给出一行输出,输出摆放的方案数目 $C$ (数据保证 $C\u003c2^{31}$)。"}},{"title":"样例","value":{"format":"MD","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e2 1\n#.\n.#\n4 4\n...#\n..#.\n.#..\n#...\n-1 -1\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e2\n1\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}