n, R = map(int, input().split())
a = [[0] * (5000 + 2) for _ in range(5000 + 2)]

mx = my = R # 需要的边界
for _ in range(n):
    x, y, v = map(int, input().split())
    a[x + 1][y + 1] = v
    mx = max(mx, x + 1)
    my = max(my, y + 1)

for i in range(1, mx + 1): # 前缀和
    for j in range(1, my + 1):
        a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1]
    
ans = 0
for i in range(R, mx + 1):
    for j in range(R, my + 1):
        ans = max(ans, a[i][j] - a[i - R][j] - a[i][j - R] + a[i - R][j - R])
print(ans)