#include <iostream>
#include <algorithm>
long long value[5005][5005],sum[5005][5005];
using namespace std;
long long get(int x1, int y1, int x2, int y2) {
if (!x1 && !y1)return sum[x2][y2];
if (!x1) return sum[x2][y2] - sum[x2][y1 - 1];
if (!y1) return sum[x2][y2] - sum[x1 - 1][y2];
return sum[x2][y2] + sum[x1 - 1][y1 - 1] - sum[x2][y1 - 1] - sum[x1 - 1][y2];
}
void pre(int xn, int yn) {
sum[0][0] = value[0][0];
for (int i = 1; i <= xn; i++)sum[i][0] = sum[i - 1][0] + value[i][0];
for (int j = 1; j <= yn; j++)sum[0][j] = sum[0][j - 1] + value[0][j];
for (int i = 1; i <= xn; i++)for (int j = 1; j <= yn; j++)sum[i][j] = value[i][j] + sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
}
int main()
{
int n, m, xn = 0, yn = 0;
cin >> n >> m;
for (int i = 0; i < n; i++) {
int x, y, v; cin >> x >> y >> v;
value[x][y] += v; if (xn < x)xn = x; if (yn < y)yn = y;
}
pre(xn, yn);
int max = 0;
for (int i = 0; i + m - 1 <= xn; i++) {
for (int j = 0; j + m - 1 <= yn; j++) {
int x = i + m - 1, y = j + m - 1;
if (max < get(i, j, x, y)) {
max = get(i, j, x, y);
}
}
}
cout << max;
return 0;
}