using System;
using System.Collections.Generic;
using System.Linq;

namespace C
{
    class Program
    {
        static public int h;
        static public int w;
        static public bool[,] A;
        static void Main(string[] args)
        {
            string[] In = Console.ReadLine().Split(' ');
            h = int.Parse(In[0]);
            w = int.Parse(In[1]);
            int k = int.Parse(In[2]);
            A = new bool[h, w];
            for (int i = 0; i < h; i++)
            {
                string In2 = Console.ReadLine();
                for (int j = 0; j < w; j++)
                {
                    if (In2[j] == '#') A[i, j] = true;
                }
            }
            int ans = 0;
            for (int i = 0; i < (1 << h); i++)//1<<0=1 1<<1=2 1<<2=4　なので1<<nはn+1桁の2進数で表せる最大の数
            {
                var dh = new int[h];
                for (int j = 0; j < h; j++)
                {
                    if (((i >> j) & 1) == 1) { dh[j] = 1; }//iのjビット目が１か
                }
                for (int ii = 0; ii < (1 << w); ii++)//1<<0=1 1<<1=2 1<<2=4　なので1<<nはn+1桁の2進数で表せる最大の数
                {
                    var dw = new int[w];
                    for (int jj = 0; jj < w; jj++)
                    {
                        if (((ii >> jj) & 1) == 1) { dw[jj] = 1; }//iのjビット目が１か
                    }
                    if (CheckTrue(dh, dw) == k) ans++;
                }
            }
                Console.WriteLine(ans);
        }
        static public int CheckTrue(int[] x, int[] y)
        {
            int cnt = 0;
            for (int i = 0; i < h; i++)
            {
                if (x[i]==1) continue;
                for (int j = 0; j < w; j++)
                {
                    if (y[j]==1) continue;
                    if (A[i, j]) cnt++;
                }
            }
            return cnt;
        }
    }
}

//ビットマスクできない
//namespace C
//{
//    class Program
//    {
//        static public int h;
//        static public int w;
//        static public bool[,] A;
//        static void Main(string[] args)
//        {
//            string[] In = Console.ReadLine().Split(' ');
//            h = int.Parse(In[0]);
//            w = int.Parse(In[1]);
//            int k = int.Parse(In[2]);
//            A = new bool[h, w];
//            for (int i = 0; i < h; i++)
//            {
//                string In2 = Console.ReadLine();
//                for (int j = 0; j < w; j++)
//                {
//                    if (In2[j] == '#') A[i, j] = true;
//                }
//            }
//            int ans = 0;
//            if (Bitmask() == k) ans++;
//            Console.WriteLine(ans);
//        }
//        static public int Bitmask()
//        {
//            bool[] zx = new bool[h];
//            bool[] zy = new bool[w];
//            for (int i = 0; i < (int)Math.Pow(2, h); i++)
//            {
//                for (int j = 0; j < h; j++)
//                {
//                    if (((i >> j) & 1) == 1)
//                    {
//                        zx[j] = true;

//                        for (int ii = 0; ii < (int)Math.Pow(2, w); ii++)
//                        {
//                            for (int jj = 0; jj < w; jj++)
//                            {
//                                if (((ii >> jj) & 1) == 1)
//                                {
//                                    zy[j] = true;
//                                    foreach (var z in zx)
//                                    {
//                                        if (z) Console.Write("O");
//                                        else Console.WriteLine("x");
//                                    }
//                                    foreach (var z in zy)
//                                    {
//                                        if (z) Console.Write("O");
//                                        else Console.WriteLine("x");
//                                    }
//                                    CheckTrue(zx, zy);
//                                }
//                            }
//                        }
//                    }
//                }
//            }
//            return 0;
//        }
//        static public int CheckTrue(bool[] x, bool[] y)
//        {
//            int cnt = 0;
//            for (int i = 0; i < h; i++)
//            {
//                if (x[i]) continue;
//                for (int j = 0; j < w; j++)
//                {
//                    if (y[j]) continue;
//                    if (A[i, j]) cnt++;
//                }
//            }
//            return cnt;
//        }
//    }
//}


Measured memory_bytes: 27544