#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int N,M,K,T;
int val[4001][4001],dp[4001][4001];
int main(){
scanf("%d%d%d%d",&N,&M,&K,&T);
for(int i=1;i<=K;i++){
int x,y,v;
scanf("%d%d%d",&x,&y,&v);
val[x][y]=v;
}
for(int i=1;i<=N;i++){
for(int j=1;j<=M;j++){
for(int k=max(1,j-T);k<=min(N,j+T);k++){
dp[i][j]=max(dp[i][j],dp[i-1][k]+val[i][j]);
}
}
}
int ans=0;
for(int i=1;i<=M;i++){
ans=max(ans,dp[N][i]);
}
printf("%d",ans);
return 0;
}
无论是手写的max还是cmath的max都20pts