
# include<stdio.h>
# include<string.h>
# include<algorithm>
# include<iostream>
# include<queue>
# define maxn 30
using namespace std;
char s[maxn][maxn];
int vis[maxn];
int ans,n,k;
void dfs(int x,int num){
if(num==k){
ans++;
return ;
}
if(x>=n){
return ;
}
for(int i=0;i<n;i++){
if(!vis[i]&&s[x][i]=='#'){
vis[i]=1;
dfs(x+1,num+1);
vis[i]=0;
}
}
dfs(x+1,num);
}
int main(){
while(scanf("%d%d",&n,&k)!=EOF){
if(n==-1&&k==-1){
break;
}
memset(s,0,sizeof(s));
memset(vis,0,sizeof(vis));
for(int i=0;i<n;i++){
scanf("%s",s[i]);
}
ans=0;
dfs(0,0);
printf("%d\n",ans);
}
return 0;
}