#include "bits/stdc++.h"
#include <chrono>
#include <random>
#include <cstdio>
#define ll long long int
#define endl '\n'
#define pb push_back
#define mp make_pair
#define mod 1000000007
#define rep(i,n) for(ll i=0;i<n;i++)
#define vi vector <int>
#define vs vector <string>
#define vc vector <char>
#define vl vector <ll>
#define pll pair<ll, ll>
#define pint pair<int, int>
#define S second
#define F first
#define all(c) (c).begin(),(c).end()
using namespace std;
ll power(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll modInverse(ll a){return power(a,mod-2);}
const int N=500001;
// vector<pair<ll, ll> > adj[N];
// bool vis[N];
ll gcd(ll a, ll b) { if (a == 0) return b; return gcd(b % a, a); } 
ll lcm(ll a, ll b){return a*b/gcd(a, b);}
#define pi 3.14159265358979323846264338
using namespace std; 
ll max(ll a, ll b){ if(a>b)return a;return b;}
ll min(ll a, ll b){ if(a < b) return a;return b;}
ll inf = 100000000000000000;
// vector<pair<int, char> > adj[N];


void solve()
{ 
    
    int n, m, k;
    cin>>n>>m>>k;
    // int r = n;
    // n = 6;
    string s[n];
    rep(i, n)
    {
        cin>>s[i];
    }

    int row[n];
    int col[m];

    rep(i,n) row[i] = 0;
    rep(i,m) col[i] = 0;

    rep(i, n)
    {
        rep(j, m)
        {
            if(s[i][j] == '#')
            {
                row[i]++;
                col[j]++;
            }
        }
    }

    int ans = 0;

    vector<set<int> > arr1, arr2;

    rep(i, n)
    {
        set<int> p;
        p.insert(i);
        arr1.pb(p);
    }

    rep(i, n)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < n; j++)
        {
            p.insert(j);
            arr1.pb(p);
            p.clear();
            p.insert(i);
        }
    }

    rep(i, n)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < n; j++)
        {
            p.insert(j);
            for(int k = j + 1; k < n; k++)
            {
                p.insert(k);
                arr1.pb(p);
                p.clear();
                p.insert(i);
                p.insert(j);
            }
            p.clear();
            p.insert(i);
        }

    }

    rep(i, n)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < n; j++)
        {
            p.insert(j);
            for(int k = j + 1; k < n; k++)
            {
                p.insert(k);
                for(int l = k + 1; l < n; l++)
                {
                    p.insert(l);
                    arr1.pb(p);
                    p.clear();
                    p.insert(i);p.insert(j);p.insert(k);
                }
                p.clear();
                p.insert(i);p.insert(j);
            }
            p.clear();
            p.insert(i);
        }
    }

    rep(i, n)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < n; j++)
        {
            p.insert(j);
            for(int k = j + 1; k < n; k++)
            {
                p.insert(k);
                for(int l = k + 1; l < n; l++)
                {
                    p.insert(l);
                    for(int t = l + 1; t < n; t++)
                    {
                        p.insert(t);
                        arr1.pb(p);
                        p.clear();
                        p.insert(i), p.insert(j), p.insert(k), p.insert(l);
                    }
                    p.clear();
                    p.insert(i), p.insert(j), p.insert(k);
                }
                p.clear();
                p.insert(i);p.insert(j);
            }
            p.clear();
            p.insert(i);
        }
    }

    rep(i, m)
    {
        set<int> p;
        p.insert(i);
        arr2.pb(p);
    }

    rep(i, m)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < m; j++)
        {
            p.insert(j);
            arr2.pb(p);
            p.clear();
            p.insert(i);
        }
    }

    rep(i, m)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < m; j++)
        {
            p.insert(j);
            for(int k = j + 1; k < m; k++)
            {
                p.insert(k);
                arr2.pb(p);
                p.clear();
                p.insert(i);
                p.insert(j);
            }
            p.clear();
            p.insert(i);
        }

    }

    rep(i, m)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < m; j++)
        {
            p.insert(j);
            for(int k = j + 1; k < m; k++)
            {
                p.insert(k);
                for(int l = k + 1; l < m; l++)
                {
                    p.insert(l);
                    arr2.pb(p);
                    p.clear();
                    p.insert(i);p.insert(j);p.insert(k);
                }
                p.clear();
                p.insert(i);p.insert(j);
            }
            p.clear();
            p.insert(i);
        }
    }

    rep(i, m)
    {
        set<int> p;
        p.insert(i);
        for(int j = i + 1; j < m; j++)
        {
            p.insert(j);
            for(int k = j + 1; k < m; k++)
            {
                p.insert(k);
                for(int l = k + 1; l < m; l++)
                {
                    p.insert(l);
                    for(int t = l + 1; t < m; t++)
                    {
                        p.insert(t);
                        arr2.pb(p);
                        p.clear();
                        p.insert(i), p.insert(j), p.insert(k), p.insert(l);
                    }
                    p.clear();
                    p.insert(i), p.insert(j), p.insert(k);
                }
                p.clear();
                p.insert(i);p.insert(j);
            }
            p.clear();
            p.insert(i);
        }
    }
    set<int> p;
    p.insert(0), p.insert(1), p.insert(2), p.insert(3), p.insert(4), p.insert(5);
    if(n == 6) arr1.pb(p);
    if(m == 6) arr2.pb(p);
    // for(auto x:arr1)
    // {
    //     for(auto y:x)
    //     {
    //         cout<<y<<" ";

    //     }
    //     cout<<endl;
    // }
    // for(auto x:arr2)
    // {
    //     for(auto y:x)
    //     {
    //         cout<<y<<" ";

    //     }
    //     cout<<endl;
    // }
    // cout<<arr1.size()<<endl;
    // n = r;
    for(auto x:arr1)
    {
        for(auto y:arr2)
        {
            // if(x.size() > n || y.size() > m) continue;

            int tmp = 0;
            rep(i, n)
            {
                rep(j, m)
                {
                    if(x.find(i) != x.end() && y.find(j) != y.end())
                    {
                        if(s[i][j] == '#') tmp++;
                    }
                }
            }

            if(tmp == k) ans++;
        }
    }
    cout<<ans<<endl;


}

int main()
{
    #ifndef ONLINE_JUDGE
        // for getting input from input.txt
        freopen("input.txt", "r", stdin);
        // for writing output to output.txt
        freopen("output.txt", "w", stdout);
    #endif

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int T=1;
    // cin>>T;
    int t=0;
    while(t++<T)
    {
        // cout<<"Case #"<<t<<":"<<' ';
        solve();
        //cout<<'\n';
    }

    cerr << "Time : " << 1000 * ((double)clock()) / (double)CLOCKS_PER_SEC << "ms\n";
}

Measured memory_bytes: 3852