# 0と1で表せる。
# hの選び方, 0,0, 1,0 0,1 1,1
# wの選び方, 0,0,0, 0,0,1, 0,1,0, 1,0,0, 0,1,1, 1,0,1, 1,1,0, 1,1,1

h,w,k=gets.split.map &:to_i
c = h.times.map { gets.chomp.chars }
c2 = Marshal.load(Marshal.dump(c))
res=0
=begin
#ph = [*0..h]
#pw = [*0..w]
pc = [h,w].max
p c
h.times do |i|
  w.times do |j|
   c[i][j]
  end
end
=end
ch = [0,1].repeated_permutation(h).to_a
cw = [0,1].repeated_permutation(w).to_a

# 組み合わせを全て試す。
ch.each do |i|
  cw.each do |j|
    # 赤く塗る作業
    # indexメソッドだと全ての1を取得できない
    #h_paint_idx = i.index(1)
    #h_paint_idx = j.index(1)
    i.each_with_index do |ii, eii|
      j.each_with_index do |jj, ejj|
        #if i == [0, 0] && j == [0, 1, 1]
        #  puts "=========#{jj}==and===#{j.index(jj)}===" 
        #end
        if ii == 1
          w.times do |wj|
            c[eii][wj] = 'red'
          end
        elsif  jj == 1
          h.times do |hi|
            c[hi][ejj] = 'red'
          end
        end # if end
      end # j
    end # i
    res += 1 if c.flatten.count('#') == k
    #p res
    #p c
    #puts "i:#{i}, j:#{j}"
    c = Marshal.load(Marshal.dump(c2))
    #p "##ターン##"
  end # cw
end # ch

puts res