// 1321.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
char q[10][10];
bool row_used[10];
int count,num_p;
int k,n;
void DFS(int i)
{
    if(num_p==k)
    {
        count++;
        return;
    }
    if(i>n)
        return;
    
    for(int j=1;j<=n;j++)
    {
        if(q[i][j]=='#'&&!row_used[j])
        {
            row_used[j]=true;
            num_p++;
            DFS(i+1);
            row_used[j]=false;
            num_p--;
            
        }
        
    }
    DFS(i+1);//i行不放棋子
}
int main()
{
    while(cin>>n>>k)
    {
        count=0;
        num_p=0;
        memset(row_used,0,10*sizeof(row_used[0]));
        if(n==-1&&k==-1)
            break;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            {
                cin>>q[i][j];
            }
        DFS(1);
        cout<<count<<endl;
    }
    system("pause");
    return 0;
}