#include<bits/stdc++.h>
using namespace std;
struct node
{
int z,x,y;
};
int m,n,l,t;
int dx[]= {1,-1,0,0,0,0};
int dy[]= {0,0,1,-1,0,0};
int dz[]= {0,0,0,0,1,-1};
bool tu[70][1400][130]= {0};
int pan(int z,int x,int y)
{
if(z>=0&&z<l&&x>=0&&x<m&&y>=0&&y<n&&tu[z][x][y])
{
return 1;
}
else return 0;
}
int bfs(int z,int x,int y)
{
int sum = 1;
queue<node>o;
o.push(node{z,x,y});
tu[z][x][y] = 0;
while(!o.empty())
{
node tt = o.front();
o.pop();
for(int i=0; i <6; i++)
{
int tz = tt.z+dz[i];
int tx = tt.x+dx[i];
int ty = tt.y+dy[i];
if(pan(tz,tx,ty))
{
tu[tz][tx][ty] = 0;
sum++;
o.push(node{tz,tx,ty});
}
}
}
if(sum>=t)return sum;
else return 0;
}
int main()
{
cin>>m>>n>>l>>t;
for(int i=0; i<l; i++)
{
for(int j=0; j<m; j++)
{
for(int k=0; k<n; k++)
{
int num;
cin>>num;
tu[i][j][k] = num;
}
}
}
int sum = 0;
for(int i=0; i<l; i++)
{
for(int j=0; j<m; j++)
{
for(int k=0; k<n; k++)
{
if(tu[i][j][k])
sum+=bfs(i,j,k);
}
}
}
cout<<sum<<endl;
return 0;
}