#include<stdio.h> bool arce[9][9]; bool isign[9]; bool jsign[9]; int num; int n,k,kk; void init(); bool DFS(int h); int A(int k); int main() { while(scanf("%d%d",&n,&k)) { if(n==-1&&k==-1)break; int c=0;int i; init(); for(i=1;i<=n-k+1;i++) { num=0; DFS(i); c+=num; } printf("%d/n",c); } return 0; } int A(int k) { int i;int sum=1; for(i=1;i<=k;i++) sum*=i; return sum; } bool DFS(int h) { if(isign[h])return true; isign[h]=true; int i,j; for(j=1;j<=n;j++) if(!jsign[j]&&arce[h][j]) { jsign[j]=true;kk++; if(kk==k){num++;jsign[j]=false;kk--;continue;} for(i=h+1;i<=n;i++) if(!isign[i])DFS(i); kk--;jsign[j]=false; } isign[h]=false; return true; } void init() { int i,j;char temp; for(i=1;i<=n;i++) { scanf("%c",&temp); isign[i]=false; jsign[i]=false; for(j=1;j<=n;j++) { scanf("%c",&temp); if(temp=='#')arce[i][j]=true; else arce[i][j]=false; } } }