#include using namespace std; using ll=long long; const int N=4005; const int f[6][2]={{0,1},{0,-1},{-1,-1},{-1,0},{1,0},{1,1}}; int n,k; ll p; int d[N][N]; queue> q; ll s1[N][N],s2[N][N]; ll ans; int mi[N][N]; inline bool ch(int x,int y,int d){ return (s1[x][y]-s2[x][y+1]-s1[x+d][y]+s2[x+d][y+1+d])>=p; } int main(){ scanf("%d%d%lld",&n,&k,&p); for(int i=1;i<=n;++i){ for(int j=1;j<=i;++j){ d[i][j]=0x3f3f3f3f; } } while(k--){ int x,y; scanf("%d%d",&x,&y); d[x][y]=0; q.emplace(x,y); } while(!q.empty()){ auto [x,y]=q.front(); q.pop(); for(auto [dx,dy]:f){ int tx=x+dx,ty=y+dy; if(tx<=0||ty<=0)continue; if(tx>n||ty>tx)continue; if(d[tx][ty]!=0x3f3f3f3f)continue; d[tx][ty]=d[x][y]+1; q.emplace(tx,ty); } } for(int i=n;i;--i){ for(int j=n;j;--j){ s1[i][j]=s1[i+1][j]+s1[i][j+1]-s1[i+1][j+1]+d[i][j]; s2[i][j]=s2[i+1][j+1]+s2[i][j+1]-s2[i+1][j+2]+d[i][j]; } } for(int i=n;i;--i){ for(int j=1;j<=i;++j){ mi[i][j]=min(mi[i+1][j],mi[i+1][j+1])+1; while(mi[i][j]!=1&&ch(i,j,mi[i][j]))--mi[i][j]; ans+=(n-i+1)-mi[i][j]; } } printf("%lld\n",ans); return 0; }