1 #include<iostream>
2 #include<cstdio>
3 #define max 10
4 using namespace std;
5 char s[max][max];
6 int n,k,t=0;
7 bool deal(int r,int c)
8 {
9 for(int i=0;i<n;i++)
10 {
11 if(s[i][c]=='o') return false;
12 }
13 for(int i=0;i<n;i++)
14 {
15 if(s[r][i]=='o') return false;
16 }
17 return true;
18 }
19 void dfs(int c,int m)
20 {
21 int x,y;
22 if(m==k)
23 {
24 t++;
25 return ;
26 }
27 if(c==n*n)
28 return;
29 x=c/n;
30 y=c%n;
31 if(s[x][y]=='#'&&deal(x,y))
32 {
33
34 s[x][y]='o';
35 dfs(c+1,m+1);
36 s[x][y]='#';
37 }
38 dfs(c+1,m);
39 return ;
40 }
41 int main()
42 {
43 while(scanf("%d%d",&n,&k)&&n!=-1&&k!=-1){
44 t=0;
45 for(int i=0;i<n;i++)
46 for(int j=0;j<n;j++)
47 cin>>s[i][j];
48 dfs(0,0);
49 printf("%d\n",t);
50 }
51 return 0;
52 }