#include<iostream>
#include<string.h>
#include<string>
#include<vector>
#include<math.h>
#include<map>
#include<algorithm>
#include<cstring>
#include<queue>
#include<stack>
#include<set>
#include<list>
using namespace std;
#define ll long long
#define ld long double
#define IOS \
ios_base::sync_with_stdio(false); \
cin.tie(nullptr); \
cout.tie(nullptr); \
const ll INF = 1e18;
const ll N = 1e8 + 10;
ll Map[5005][5005];
int n, r;
int main() {
IOS;
cin >> n >> r;
int x, y, w;
int maxx=-1;
int maxy=-1;
while (n--) {
cin >> x >> y >> w;
x++; y++;
maxx=max(maxx,x);
maxy=max(maxy,y);
Map[x][y] += w;
}
for (int i = 1; i <= maxx+1; i++) {
for (int j = 1; j <= maxy+1; j++) {
Map[i][j] = Map[i - 1][j] + Map[i][j - 1] - Map[i - 1][j - 1] + Map[i][j];
}
}
ll maxn = -1;
for (int i = 1; i <= maxx; i++) {
for (int j = 1; j <= maxy; j++) {
int a = i + r - 1, b = j + r - 1;
if (a < 1 || a>maxx || b < 1 || b>maxy)continue;
maxn = max(Map[a][b] - Map[a][j - 1] - Map[i - 1][b] + Map[i - 1][j - 1], maxn);
}
}
cout << maxn;
}