#include<bits/stdc++.h>
using namespace std;
const int M=1000000007;
int ans=0;
int n,m,k;
int a[805][805];
int dp[805][805][20][2];
int main()
{
scanf("%d%d%d",&n,&m,&k);
k++;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
dp[i][j][a[i][j]%k][1]=1;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
for(int x=0;x<=k-1;x++)
{
dp[i][j][x][1]=(dp[i][j][x][1]+dp[i-1][j][(x-a[i][j]+k)%k][1])%M;
dp[i][j][x][1]=(dp[i][j][x][1]+dp[i][j-1][(x-a[i][j]+k)%k][1])%M;
dp[i][j][x][0]=(dp[i][j][x][0]+dp[i-1][j][(x+a[i][j])%k][0])%M;
dp[i][j][x][0]=(dp[i][j][x][0]+dp[i][j-1][(x+a[i][j])%k][0])%M;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
ans=(ans+dp[i][j][0][0])%M;
}
}
printf("%d",ans);
return 0;
}