#include<stdio.h>
#include<string.h>

char v[9],g[9][9];
int n,ans;

void dfs(int k,int cur)
{
	int i,j;
	for(i=cur-1;i>k-2;i--)
	{
		for(j=0;j<n;j++)
			if(g[i][j]=='#'&&v[j]==0)
				if(i&&k>1)
				{
					v[j]=1;
					dfs(k-1,i);
					v[j]=0;
				}
				else
					ans++;
	}
}

int main()
{
	int k,i;
	while(scanf("%d%d",&n,&k)!=EOF,n!=-1||k!=-1)
	{
		memset(v,0,sizeof(v));
		for(i=0;i<n;i++)
			scanf("%s",g[i]);
		ans=0;
		dfs(k,n);
		printf("%d\n",ans);
	}
	return 0;
}
/**************************************************************
	Problem: 2127
	User: admin
	Language: C++
	Result: Accepted
	Time:8 ms
	Memory:1144 kb
****************************************************************/