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
****************************************************************/