i,j表示坐标
k表示当前宝物数量
l表示宝贝价值最大值
#include <iostream>
using namespace std;
const int N = 1000000007;
int a[60][60];
int n,m,num;
int f[60][60][20][20];
int ans;
int main() {
cin >> n >> m >> num;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++) {
cin >> a[i][j];
a[i][j]++;
}
f[1][1][0][0]=f[1][1][1][a[1][1]]=1;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
for(int k=0; k<=num; k++)
for(int l=0; l<=15; l++) {
f[i+1][j][k][l]=(f[i+1][j][k][l]+f[i][j][k][l])%N;
f[i][j+1][k][l]=(f[i][j+1][k][l]+f[i][j][k][l])%N;
if(l<a[i+1][j]) f[i+1][j][k+1][a[i+1][j]]=(f[i][j][k][l]+f[i+1][j][k+1][a[i+1][j]])%N;
if(l<a[i][j+1]) f[i][j+1][k+1][a[i][j+1]]=(f[i][j+1][k+1][a[i][j+1]]+f[i][j][k][l])%N;
}
for(int i=0; i<=15; i++)
ans=(ans+f[n][m][num][i])%N;
cout << ans;
return 0;
}