def space_input(p=''):
    s=raw_input(p).split()
    for i in range(len(s)):
        s[i]=eval(s[i])
    return tuple(s)
class Mymap:
    def __init__(self,l,n):
        self.cnum=1
        for i in range(1,n+1):
            self.cnum*=i
        self.num=n
        self.resultnum=0
        self.linenum=l
        self.line=set(range(l))
        self.map=[[' ' for i in range(l)] for i in range(l)]
    def getmap(self):
        for i in range(self.linenum):
            line=raw_input()
            for j in range(self.linenum):
                self.map[i][j]=line[j]
    def getresult(self,num,x,y):
        if num:
            for i in x:
                for j in y:
                    if self.map[i][j]=='#':
                        self.getresult(num-1,x-{i},y-{j})
        else:
            self.resultnum+=1
l,n=space_input()
while l!=-1 or n!=-1:
    a=Mymap(l,n)
    a.getmap()
    a.getresult(a.num,a.line,a.line)
    print a.resultnum/a.cnum
    l,n=space_input()
/**************************************************************
	Problem: 2127
	User: admin
	Language: Python
	Result: Wrong Answer
****************************************************************/