#include<bits/stdc++.h>
using namespace std;
#define int long long
#define for1(i,a,b) for(int i=a;i<=b;i++)
#define for0(i,a,b) for(int i=a;i<b;i++)
#define vll(v) v.begin(),v.end()
#define ii pair<int,int>
#define el '\n'
#define pb push_back
const int N=1e6;
const int MOD=1e9+7;
int f[1011][1011];
int a[1011][1011],vt[1011][1011];
int n,m,k,ans=0;
struct ju{
int fii,se,th,fi;
};
int get(int x,int y,int x_,int y_){
return f[x_][y_]-f[x][y_]-f[x_][y]+f[x][y];
}
void solve(int xx,int yy){
queue<ju>q;
for1(i,xx,xx+k-1)
for1(j,yy,yy+k-1){
if(a[i][j]==1) return;
}
ans++;
// cout<<ans<<el;
q.push({xx,yy,xx+k-1,yy+k-1});
while(!q.empty()){
ju ff=q.front();
q.pop();
int x=ff.fii,y=ff.se,x_=ff.th,y_=ff.fi;
//cout<<x<<' '<<y<<el;
vt[x][y]=1;
if(y_+1<=m&&vt[x][y+1]==0&&get(x-1,y_,x_,y_+1)==0) {
q.push({x,y+1,x_,y_+1});
vt[x][y+1]=1;
}
if(x_+1<=n&&vt[x+1][y]==0&&get(x_,y-1,x_+1,y_)==0) {
q.push({x+1,y,x_+1,y_});
vt[x+1][y]=1;
}
if(x-1>=1&&vt[x-1][y]==0&&get(x-1-1,y-1,x_-1,y_)==0) {
q.push({x-1,y,x_-1,y_});
vt[x-1][y]=1;
}
if(y-1>=1&&vt[x][y-1]==0&&get(x-1,y-2,x_,y-1)==0) {
q.push({x,y-1,x_,y_-1});
vt[x][y-1]=1;
}
}
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
/*
freopen("a.INP","r",stdin);
freopen("a.OUT","w",stdout);
4 8 3
0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0
*/
cin>>n>>m>>k;
for1(i,1,n)
for1(j,1,m)
cin>>a[i][j];
for1(i,1,n)
for1(j,1,m){
f[i][j]=f[i-1][j]+f[i][j-1]-f[i-1][j-1]+a[i][j];
}
for1(i,1,n-k+1)
for1(j,1,m-k+1){
if(a[i][j]==0&&vt[i][j]==0){
// ans++;
solve(i,j);
}
}
cout<<ans;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGZvcjEoaSxhLGIpIGZvcihpbnQgaT1hO2k8PWI7aSsrKQojZGVmaW5lIGZvcjAoaSxhLGIpIGZvcihpbnQgaT1hO2k8YjtpKyspCiNkZWZpbmUgdmxsKHYpIHYuYmVnaW4oKSx2LmVuZCgpCiNkZWZpbmUgaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIGVsICdcbicKI2RlZmluZSBwYiBwdXNoX2JhY2sKY29uc3QgaW50IE49MWU2Owpjb25zdCBpbnQgTU9EPTFlOSs3OwppbnQgZlsxMDExXVsxMDExXTsKaW50IGFbMTAxMV1bMTAxMV0sdnRbMTAxMV1bMTAxMV07CiBpbnQgbixtLGssYW5zPTA7CiBzdHJ1Y3QganV7CiAgaW50IGZpaSxzZSx0aCxmaTsKIH07CiBpbnQgZ2V0KGludCB4LGludCB5LGludCB4XyxpbnQgeV8pewogIHJldHVybiBmW3hfXVt5X10tZlt4XVt5X10tZlt4X11beV0rZlt4XVt5XTsKIH0KIHZvaWQgc29sdmUoaW50IHh4LGludCB5eSl7CiAgICAgcXVldWU8anU+cTsKIGZvcjEoaSx4eCx4eCtrLTEpCiAgZm9yMShqLHl5LHl5K2stMSl7CiAgIGlmKGFbaV1bal09PTEpIHJldHVybjsKICB9CiAgYW5zKys7CiAvLyBjb3V0PDxhbnM8PGVsOwogIHEucHVzaCh7eHgseXkseHgray0xLHl5K2stMX0pOwogIHdoaWxlKCFxLmVtcHR5KCkpewoKICAgICAgICBqdSBmZj1xLmZyb250KCk7CiAgcS5wb3AoKTsKICBpbnQgeD1mZi5maWkseT1mZi5zZSx4Xz1mZi50aCx5Xz1mZi5maTsKICAvL2NvdXQ8PHg8PCcgJzw8eTw8ZWw7CnZ0W3hdW3ldPTE7CgogICAgIGlmKHlfKzE8PW0mJnZ0W3hdW3krMV09PTAmJmdldCh4LTEseV8seF8seV8rMSk9PTApIHsKICAgICAgICAgICAgcS5wdXNoKHt4LHkrMSx4Xyx5XysxfSk7CiAgICAgICAgICAgIHZ0W3hdW3krMV09MTsKICAgICB9CgoKICAgICAgaWYoeF8rMTw9biYmdnRbeCsxXVt5XT09MCYmZ2V0KHhfLHktMSx4XysxLHlfKT09MCkgewogICAgICAgICAgICBxLnB1c2goe3grMSx5LHhfKzEseV99KTsKICAgICAgICAgICAgdnRbeCsxXVt5XT0xOwogICAgICB9CgoKCgogICAgICBpZih4LTE+PTEmJnZ0W3gtMV1beV09PTAmJmdldCh4LTEtMSx5LTEseF8tMSx5Xyk9PTApIHsKICAgICAgICAgICAgcS5wdXNoKHt4LTEseSx4Xy0xLHlffSk7CiAgICAgICAgICAgIHZ0W3gtMV1beV09MTsKICAgICAgfQoKCgogICAgICBpZih5LTE+PTEmJnZ0W3hdW3ktMV09PTAmJmdldCh4LTEseS0yLHhfLHktMSk9PTApIHsKICAgICAgICAgICAgcS5wdXNoKHt4LHktMSx4Xyx5Xy0xfSk7CiAgICAgICAgICAgdnRbeF1beS0xXT0xOwogICAgICB9CgoKICB9CgogfQpzaWduZWQgbWFpbigpewogaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsKIGNpbi50aWUoMCk7CiBjb3V0LnRpZSgwKTsKIC8qCiBmcmVvcGVuKCJhLklOUCIsInIiLHN0ZGluKTsKIGZyZW9wZW4oImEuT1VUIiwidyIsc3Rkb3V0KTsKNCA4IDMKMCAwIDAgMSAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAKMCAwIDAgMCAwIDEgMSAwCgogKi8KCiBjaW4+Pm4+Pm0+Pms7CiBmb3IxKGksMSxuKQogICBmb3IxKGosMSxtKQogIGNpbj4+YVtpXVtqXTsKCiAgZm9yMShpLDEsbikKICAgIGZvcjEoaiwxLG0pewogICAgIGZbaV1bal09ZltpLTFdW2pdK2ZbaV1bai0xXS1mW2ktMV1bai0xXSthW2ldW2pdOwogICAgfQoKICAgZm9yMShpLDEsbi1rKzEpCiAgICBmb3IxKGosMSxtLWsrMSl7CiAgICAgIGlmKGFbaV1bal09PTAmJnZ0W2ldW2pdPT0wKXsKICAgICAgIC8vIGFucysrOwogICAgICAgIHNvbHZlKGksaik7CiAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGFuczsKIHJldHVybiAwOwp9CgoKCg==