#include <bits/stdc++.h>
#define nmx 305
#define mod 1000000007
using namespace std;
int n,m,k,v[nmx][nmx],r[2005],dp[2][nmx][2005],ct,from[1000005];
bitset <1000005> vf;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin>>n>>m>>k;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
cin>>v[i][j];
int sq=int(sqrt(k));
for (int i=1; i<=sq; i++)
{
if (i==sq && i*i==k)
{
int x2=k/i;
if (x2*i<k)
x2++;
if (!vf[x2])
{
r[++ct]=x2;
vf[x2]=1;
}
continue;
}
int x2=k/i;
if (x2*i<k)
x2++;
if (!vf[x2])
{
r[++ct]=x2;
vf[x2]=1;
}
if (!vf[i])
{
r[++ct]=i;
vf[i]=1;
}
}
sort (r+1,r+ct+1);
int st=1;
for (int i=1; i<=k; i++)
if (r[st]==i)
{
from[i]=st;
st++;
}
else
from[i]=from[i-1];
dp[(n+1)%2][m][ct]=1;
for (int i=n; i>=1; i--)
{
for (int j=m; j>=1; j--)
{
for (int l=1; l<=ct; l++)
{
long long prod=1LL*r[l]*v[i][j];
int fromwh=from[min(1LL*k,prod)];
dp[i%2][j][l]=(dp[1-i%2][j][fromwh]+dp[i%2][j+1][fromwh])%mod;
}
}
}
cout<<dp[1][1][1];
}