#include <bits/stdc++.h>
using namespace std;
const int Mod = 1e9+7;
int n,m,k;
vector<vector<int>>grid;
using ll = long long;
void spreadZer(){
queue<pair<int,int>>q;
vector<vector<int>>dist(n+1,vector<int>(m+1,INT_MAX));
for(int i = 1;i<=n;i++){
for(int j= 1;j<=m ;j++){
if(grid[i][j]==0){
q.emplace(i,j);
dist[i][j]=0;
}
}
}
vector<vector<int>>dirn = {{-1,0},{1,0},{0,-1},{0,1}};
while(!q.empty()){
auto u= q.front();
int x = u.first;
int y = u.second;
q.pop();
for(auto v:dirn){
int dx = v[0];
int dy = v[1];
int nx = x+dx;int ny = y+dy;
if(nx>=1 && ny>=1 && nx<=n && ny<=m && dist[nx][ny] == INT_MAX){
dist[nx][ny]=dist[x][y]+1;
if(dist[nx][ny]<=k)
{
grid[nx][ny]=0;
q.emplace(nx,ny);
}
}
}
}
}
int countPaths(){
vector<vector<ll>>dp(n+1,vector<ll>(m+1,0));
if(grid[1][1] == 1)dp[1][1]=1;
for(int i = 1 ;i<=n ;i++){
for(int j = 1 ; j<=m ;j++){
if(i==1 && j==1 || grid[i][j] == 0)continue;
dp[i][j] = dp[i-1][j]+dp[i][j-1];
}
}
return dp[n][m];
}
int main() {
//int n,m;
cin>>n>>m>>k;
grid.assign(n+1,vector<int>(m+1));
//int pack[n][m];
for(int i = 1 ; i <= n ;i++){
for(int j = 1 ; j <= m ;j++){
cin>>grid[i][j];
}
}
spreadZer();
cout<<countPaths()<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTW9kID0gMWU5Kzc7CmludCBuLG0sazsKdmVjdG9yPHZlY3RvcjxpbnQ+PmdyaWQ7CnVzaW5nIGxsID0gIGxvbmcgbG9uZzsKCgp2b2lkIHNwcmVhZFplcigpewoJcXVldWU8cGFpcjxpbnQsaW50Pj5xOwoJdmVjdG9yPHZlY3RvcjxpbnQ+PmRpc3QobisxLHZlY3RvcjxpbnQ+KG0rMSxJTlRfTUFYKSk7CgkKCWZvcihpbnQgaSA9IDE7aTw9bjtpKyspewoJCWZvcihpbnQgaj0gMTtqPD1tIDtqKyspewoJCQlpZihncmlkW2ldW2pdPT0wKXsKCQkJCXEuZW1wbGFjZShpLGopOwoJCQkJZGlzdFtpXVtqXT0wOwoJCQl9CgkJfQoJfQoJCgl2ZWN0b3I8dmVjdG9yPGludD4+ZGlybiA9IHt7LTEsMH0sezEsMH0sezAsLTF9LHswLDF9fTsKCQoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJYXV0byB1PSBxLmZyb250KCk7CgkJaW50IHggPSAgdS5maXJzdDsKCQlpbnQgeSA9IHUuc2Vjb25kOwoJCXEucG9wKCk7CgkJCgkJZm9yKGF1dG8gdjpkaXJuKXsKCQkJaW50IGR4ID0gdlswXTsKCQkJaW50IGR5ID0gdlsxXTsKCQkJaW50IG54ID0geCtkeDtpbnQgbnkgPSB5K2R5OwoJCQlpZihueD49MSAmJiBueT49MSAmJiBueDw9biAmJiBueTw9bSAmJiBkaXN0W254XVtueV0gPT0gSU5UX01BWCl7CgkJCQkKCQkJCWRpc3RbbnhdW255XT1kaXN0W3hdW3ldKzE7CgkJCQlpZihkaXN0W254XVtueV08PWspCgkJCQl7CgkJCQlncmlkW254XVtueV09MDsKCQkJCXEuZW1wbGFjZShueCxueSk7CgkJCQl9CgkJCX0KCQl9Cgl9Cn0KaW50IGNvdW50UGF0aHMoKXsKCXZlY3Rvcjx2ZWN0b3I8bGw+PmRwKG4rMSx2ZWN0b3I8bGw+KG0rMSwwKSk7CglpZihncmlkWzFdWzFdID09IDEpZHBbMV1bMV09MTsKCQoJZm9yKGludCBpID0gMSA7aTw9biA7aSsrKXsKCQlmb3IoaW50IGogPSAxIDsgajw9bSA7aisrKXsKCQkJaWYoaT09MSAmJiBqPT0xIHx8IGdyaWRbaV1bal0gPT0gMCljb250aW51ZTsKCQkJZHBbaV1bal0gPSBkcFtpLTFdW2pdK2RwW2ldW2otMV07CgkJfQoJfQoJcmV0dXJuIGRwW25dW21dOwp9CmludCBtYWluKCkgewoJLy9pbnQgbixtOwoJY2luPj5uPj5tPj5rOwoJZ3JpZC5hc3NpZ24obisxLHZlY3RvcjxpbnQ+KG0rMSkpOyAKCS8vaW50IHBhY2tbbl1bbV07IAoJZm9yKGludCBpID0gMSA7IGkgPD0gbiA7aSsrKXsKCQlmb3IoaW50IGogPSAxIDsgaiA8PSBtIDtqKyspewoJCQljaW4+PmdyaWRbaV1bal07CgkJfQoJfSAKCglzcHJlYWRaZXIoKTsKCWNvdXQ8PGNvdW50UGF0aHMoKTw8ZW5kbDsKCXJldHVybiAwOwp9