#include<iostream>
#include<algorithm>
using namespace std;
const int mod=32367;
const int MAX=5*1e3+3;
int num[MAX][MAX];
int n,m,len_x=-1,len_y=-1,ans=0;
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++){
int x,y,v;
cin>>x>>y>>v;
len_x=max(len_x,x+1),len_y=max(len_y,y+1);
num[x+1][y+1]+=v;
}
for(int i=1;i<=len_x;i++){
for(int j=1;j<=len_y;j++){
num[i][j]=num[i][j]+num[i][j-1]+num[i-1][j]-num[i-1][j-1];
}
}
for(int i=1;i<=len_x;i++){
for(int j=1;j<=len_y;j++){
int x1=i,y1=j,x2=x1+m-1,y2=y1+m-1;
if(x1>len_x || x2>len_x || y1>len_y || y2>len_y) break;
int cnt=num[x2][y2]-num[x1-1][y2]-num[x2][y1-1]+num[x1-1][y1-1];
ans=max(ans,cnt);
}
}
cout<<ans%mod<<endl;
return 0;
}