#include <cstdio>
#include <algorithm>
using namespace std;
inline int read()
{
int s = 0, w = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {if (ch == '-') w = -1; ch = getchar();}
while (ch >= '0' && ch <= '9') s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();
return s * w;
}
const int N = 5010;
int n, value_zhui[N][N];
int m;
int res;
int main()
{
n = read();
m = read();
for (int i = 1; i <= n; i ++)
{
int x = read();
int y = read();
value_zhui[x][y] = read();
}
for (int i = 1; i <= 5000; i ++)
for (int j = 1; j <= 5000; j ++)
{
value_zhui[i][j] +=
value_zhui[i][j-1] +
value_zhui[i-1][j] -
value_zhui[i-1][j-1];
}
for (int i = 1; i+m-1 <= 5000; i ++)
for (int j = 1; j+m-1 <= 5000; j ++)
{
int ii = i + m - 1, jj = j + m - 1;
int now = value_zhui[ii][jj]
- value_zhui[ii][j-1]
- value_zhui[i-1][jj]
+ value_zhui[i-1][j-1];
res = max(res, now);
}
printf("%d\n", res);
return 0;
}