H,W,K = gets.split.map &:to_i
M = [0] * (H+W)
N = (1<<H*W) - 1
m = (1<<W) - 1
H.times {|i| M[i] ^= m; m <<= W}
n=m = 0
H.times { m |= 1 << _1*W }
W.times {|i| M[-i-1] = m; m += m}
B = H.times.inject(0) { (_1<<W) + gets.tr('.#','10').to_i(2) }
(1<<H).times {|h|
  b = B
  H.times { h[_1] > 0 and b |= M[_1] }
  next if b == N
  (1<<W).times {|w|
    t = b
    W.times { w[_1] > 0 and t |= M[-1-_1] }
    n += 1  if K == H*W - t.to_s(2).scan(?1).size
  }
}
p n