//! Bismillahi-Rahamanirahim.
/** ========================================**
 ** @Author: Md. Abu Farhad ( RUET, CSE'15)
 ** @Category:
/** ========================================**/

#include<bits/stdc++.h>
#include<stdio.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
using namespace std;


#define ll                  long long
#define scl(n)              scanf("%lld",&n)
#define scll(n, m)              scanf("%lld%lld",&n, &m)
#define scc(c)	            scanf("%c",&c)
#define fr(i,n)             for (ll i=0;i<n;i++)
#define fr1(i,n)            for(ll i=1;i<=n;i++)
#define pfl(x)              printf("%lld\n",x)
#define pb                  push_back
#define debug               cout<<"I am here"<<endl;
#define pno                 cout<<"NO"<<endl
#define pys                 cout<<"YES"<<endl
#define tcas(i,t)           for(ll i=1;i<=t;i++)
#define all(x) 	            (x).begin(), (x).end()
#define pr                  pair<ll, ll>
#define ff                  first
#define ss                  second

#define l(s)                s.size()
#define asort(a)            sort(a,a+n)
#define dsort(a)            sort(a,a+n,greater<int>())
#define vasort(v)           sort(v.begin(), v.end());
#define vdsort(v)           sort(v.begin(), v.end(),greater<int>());
#define uniquee(x)          x.erase(unique(x.begin(), x.end()),x.end())
#define pn                  printf("\n")
#define el                  cout<<endl
#define md                  1000000007
#define inf                 9e18
#define ps                  cout<<" ";
#define Pai                  acos(-1.0)
#define mem(a,i)            memset(a, i, sizeof(a))
#define pcas(i)             cout<<"Case "<<i<<": "<<endl;
#define fast 	ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)


map<ll, ll>mp;
ll n;
bool ispos(ll mid)
{
    ll x=mid, cnt=0 ;
    while(mid>0)
    {
        cnt+= mid%10;
        mid/=10;
    }

    cout<<x<<" "<<cnt<<" "<<x+cnt<<endl;

    return x+cnt;
}


int main()
{
        ll m,b,c,d,i,j,k,x,y,z,l,r, p, q;
        string s1, s2, s3, s4;
        ll  ans=0;

        cin>>n>>m>>k;
        string s[n];
        fr(i, n)cin>>s[i];


        x=pow(2, n) , y=pow(2, m);

        fr(mask, x)
        {
            fr(mask1 , y)
            {
                ll cnt=0;
                fr(i, n) fr(j, m)
                {
                    if(  (mask & (1<<i )) or  (mask1 & (1<<j ))) continue; 
                    if(s[i][j]=='#')cnt++;
                    //just brute force all the possible choices and 
                    //for each choice count the number of remaning black squares
                }
                if(cnt==k)ans++;
            }
        }

        pfl(ans);


        /*
        ll cnt=0,cn=0,ans=0,sum=0 ;
        vector<ll>v;
        cin>>n;

        l=1, r=n;

        while(l<=r)
        {
           ll mid=(l+r)/2;
           if(ispos(mid) >=n  )
           {
               if(ispos(mid)==n)  v.pb(mid) ;
               r=mid+1;
           }
           else l=mid-1;
        }

        cout<<v.size()<<endl;
        fr(i, v.size())cout<<v[i]<<" ";
        */
return 0;
}

/// **************************Before submit****************************

///    ****Please check all base case output  and printing " YES or NO " ***
///    *check for integer overflow,array bounds
///    *check for n=1




Measured memory_bytes: 4164