#include <bits/stdc++.h>
#include <math.h>
using namespace std;

int main() {
  int H, W, K;
  cin >> H >> W >> K;
  //cout << M << endl;

  vector<vector<int>> C(H, vector<int>(W));

  for(int i = 0; i < H; i++){
    string input;
    cin >> input;
    for(int j = 0; j < W; j++){
      if(input[j] == '.'){
        C.at(i).at(j) = 0;
      }
      else{
        C.at(i).at(j) = 1;
      }
    }
  }

  /*for (int i = 0; i < H; i++){
    for (int j = 0; j < W-1; j++){
      cout << C.at(i).at(j) << " ";
    }
    cout << C.at(i).at(W-1) << endl;
  }*/

  vector<int> flg(12);
  for(int i = 0; i < 12; i++){
    flg[i] = -1;
  }

  int ans = 0;

  for(int i1 = 0; i1 < 2; i1++){
    flg[0]++;
    flg[0] = flg[0]%2;
    for(int i2 = 0; i2 < 2; i2++){
      flg[1]++;
      flg[1] = flg[1]%2;
      for(int i3 = 0; i3 < 2; i3++){
        flg[2]++;
        flg[2] = flg[2]%2;
        for(int i4 = 0; i4 < 2; i4++){
          flg[3]++;
          flg[3] = flg[3]%2;
          for(int i5 = 0; i5 < 2; i5++){
            flg[4]++;
            flg[4] = flg[4]%2;
            for(int i6 = 0; i6 < 2; i6++){
              flg[5]++;
              flg[5] = flg[5]%2;
              for(int i7 = 0; i7 < 2; i7++){
                flg[6]++;
                flg[6] = flg[6]%2;
                for(int i8 = 0; i8 < 2; i8++){
                  flg[7]++;
                  flg[7] = flg[7]%2;
                  for(int i9 = 0; i9 < 2; i9++){
                    flg[8]++;
                    flg[8] = flg[8]%2;
                    for(int i10 = 0; i10 < 2; i10++){
                      flg[9]++;
                      flg[9] = flg[9]%2;
                      for(int i11 = 0; i11 < 2; i11++){
                        flg[10]++;
                        flg[10] = flg[10]%2;
                        for(int i12 = 0; i12 < 2; i12++){
                          flg[11]++;
                          flg[11] = flg[11]%2;
                          vector<vector<int>> C_tmp(H, vector<int>(W));
                          for(int i = 0; i < H; i++){
                            for(int j = 0; j < W; j++){
                              C_tmp.at(i).at(j) = C.at(i).at(j);
                            }
                          }
                          for(int i = 0; i < H; i++){
                            if(flg[i] == 1){
                              for(int j = 0; j < W; j++){
                                C_tmp.at(i).at(j) = 2;
                              }
                            }
                          }
                          for(int i = 0; i < W; i++){
                            if(flg[i+H] == 1){
                              for(int j = 0; j < H; j++){
                                C_tmp.at(j).at(i) = 2;
                              }
                            }
                          }
                          int total = 0;
                          for(int i = 0; i < H; i++){
                            for(int j = 0; j < W; j++){
                              if(C_tmp.at(i).at(j) == 1){
                                total++;
                              }
                            }
                          }
                          if(total == K){
                            ans++;
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }

  ans = ans / (pow(2, (12 - (H+W))));
  cout << ans << endl;
  /*int N = 3;
  vector<int> vec(N);
  for (int i = 0; i < N; i++) {
    cin >> vec.at(i);
  }*/

  /*for (int i = 0; i < vec.size(); i ++){
    cout << vec.at(i) << endl;
  }

  for (int i = 0; i < vec.size()-1; i ++){
    cout << vec.at(i) << " ";
  }
  cout << vec.at(vec.size() - 1) << endl;*/
}


Measured memory_bytes: 4096