
import Foundation
func main(){
   let split = (readLine()!).split(separator: " ").map({ Int($0)! })
   let h = split[0]
   let w = split[1]
   let k = split[2]

   var c: [[Character]] = []
   for _ in 0..<h {
      let s = Array(readLine()!)
      c.append(s)
   }
   
   var casesArray: [Bool] = []
   for _ in 0..<h + w {
      casesArray.append(true)
   }

   let answer = recurse(casesArray: casesArray, array: c, curIndex: 0, k: k)
   print(answer)
}

func recurse(casesArray: [Bool], array: [[Character]], curIndex: Int, k: Int) -> Int {
   if curIndex == casesArray.count {
      return checkValid(casesArray: casesArray, array: array, k: k) ? 1 : 0
   } else {
      var tempArray = casesArray
      tempArray[curIndex] = false
      return recurse(casesArray: casesArray, array: array, curIndex: curIndex + 1, k: k) +
      recurse(casesArray: tempArray, array: array, curIndex: curIndex + 1, k: k)
   }
}

func checkValid(casesArray: [Bool], array: [[Character]], k: Int) -> Bool {
   var total = 0
   for i in 0..<array.count {
      for j in array.count..<casesArray.count {
         if array[i][j - array.count] == "#" && casesArray[i] && casesArray[j] {
            total += 1
         }
      }
   }
   return total == k
}
main()