//虽然有错误,但此程序可以看出多个递归式放在一起的情况
#include <iostream>
using namespace std;
static int count=0;
int x,y;
int m,n,k;
int a[50][50];
int t=0;
void dfs(int x,int y,int s,int t)
{
if(x>m || y>n || s>k)
return;
if((x=m && y==n-1&& s==k)||(x=m-1 && y==n&& s==k) )
{count ++; return;}
if(a[x][y]>t)
{
dfs(x,y+1,s,t);
dfs(x+1,y,s,t);
dfs(x,y+1,s+1,a[x][y]);
dfs(x+1,y,s+1,a[x][y]);
} else {
dfs(x,y+1,s,t);
dfs(x+1,y,s,t);
}
}
int main(){
cin>>m>>n>>k;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
cin>>a[i][j];
}
dfs(0,0,0,0);
cout << count;
}