var GET = (function () {function f(s) {return new g(s);}function g(s) {this._s = s.trim().split("\n");}g.prototype.getValue = function (n) {return this._s[n];};g.prototype.getArray = function (n) {return this.stoa(this._s[n]);};g.prototype.slice = function (s, limit) {return this._s.slice(s, +limit + s || undefined).map(v => this.stox(v));};g.prototype.sliceArray = function (s, limit) {return this._s.slice(s, +limit + s || undefined).map(v => this.stoa(v));};g.prototype.stoa = function (s) {return s.split(" ").map(v => this.stox(v));};g.prototype.stox = function (v) {var i = +v;return (i === i) ? i : v;};return f;})();
var o = GET(require("fs").readFileSync("/dev/stdin", "utf8"));

console.log(main());

function main() {
    var v1 = o.getArray(0);
    var H = +v1[0];
    var W = +v1[1];
    var K = +v1[2];

    var cn = [];
    for (var i = 0; H > i; i++) {
        cn.push(o.getValue(i + 1));
    }

    var result = 0;
    for (let bit = 0; bit < (1 << H); bit++) {
        for (let wbit = 0; wbit < (1 << W); wbit++) {
            let count = 0;
            for (let i = 0; i < H; i++) {
                if (bit & (1 << i)) continue;
                for (let j = 0; j < W; j++) {
                    if (wbit & (1 << j)) continue;
                    if (cn[i][j] === '#') {
                        count++;
                    }
                }
            }
            if (count === K) {
                result++;
            }
        }
    }
    return result;
}