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


/// File input & output /////
#define fRead(x)        freopen("x.txt","r",stdin)
#define fWrite(x)       freopen ("x.txt","w",stdout)

#define mt              make_tuple
#define ld              long double
#define ll              long long
#define ull             unsigned long long
#define ff              first
#define ss              second
#define pb              push_back
#define INF             2e16
#define PI              acos(-1.0)
#define mp              make_pair
#define pii             pair<int,int>
#define pll             pair<LL,LL>


#define min3(a,b,c)     min(a,min(b,c))
#define max3(a,b,c)     max(a,max(b,c))
#define min4(a,b,c,d)   min(a,min(b,min(c,d)))
#define max4(a,b,c,d)   max(a,max(b,max(c,d)))
#define SQR(a)          ((a)*(a))
#define FOR(i,a,b)      for(int i=a;i<=b;i++)
#define ROF(i,a,b)      for(int i=a;i>=b;i--)
#define REP(i,b)        for(int i=0;i<b;i++)
#define MEM(a,x)        memset(a,x,sizeof(a))
#define ABS(x)          ((x)<0?-(x):(x))

#define SORT(v)         sort(v.begin(),v.end())
#define REV(v)          reverse(v.begin(),v.end())


#define FASTIO        ios_base::sync_with_stdio(0);cin.tie(nullptr);




///..................Sort by second element in a pair in decending order............. ///
bool SortbySecDesc(const pair<long long,long long > &a, const pair<long long,long long > &b)
{
    return a.second>b.second;
}

///.........................first element of pair in descending order..........................//////
bool sortinrev(const pair<int,int> &a,
               const pair<int,int> &b)
{
       return (a.first > b.first);
}



///.............................................................TEMPLATE................................................./////


//long long  Prime[3000000],nPrime;
//long long  mark[10000002];
//
//void seive(long long int n)
//{
//	long long int i,j,limit=sqrt(n*1.0)+2;
//	mark[1]=1;
//	for(i=4; i<=n ;i+=2)
//	mark[i]=1;
//	Prime[nPrime++]=2;
//	for(i=3; i<=n; i+=2)
//	{
//		if(!mark[i])
//		{
//			Prime[nPrime++]=i;
//			if(i<=limit)
//			{
//				for(j=i*i; j<=n ;j+=i*2)
//				{
//					mark[j]=1;
//				}
//			}
//		}
//	}
//}

char ar[10][10];

char br[10][10];

int n , m , k;


void matrix()
{

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            br[i][j] = ar[i][j];
        }
    }

    return;
}


void check_bit(int i , int j)
{


    for(int k=0; k<n; k++)
    {
        if(i&(1<<k))
        {
            for(int l=0; l<m; l++)
                br[k][l] = 'K';
        }
    }


    for(int k=0; k<m; k++)
    {
        if(j&(1<<k))
        {
            for(int l=0; l<n; l++)
                br[l][k] = 'K';
        }
    }
}



bool check()
{

    int count = 0;

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            if(br[i][j]=='#')
                count++;
        }
    }

    if(count==k)
        return true;
    else
        return false;
}

int main()
{
    FASTIO;

    cin >> n >> m >> k;


    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++){
            cin >> ar[i][j];
        }
    }

    ll count = 0;


    for(int i=0; i<(1<<n); i++)
    {
        for(int j=0; j<(1<<m); j++)
        {
            matrix();

            check_bit(i,j);

            if(check())
            {
                count++;
            }
        }
    }

    cout << count << endl;






    return 0;
}


Measured memory_bytes: 3608