
import sys
N, K = map(int, sys.stdin.readline().split())
bbox = {i: [] for i in range(K + 1)}
for _ in range(N):
x, y, k = map(int, sys.stdin.readline().split())
bbox[k - 1].append((x, y))
def dfs(k, xmin, xmax, ymin, ymax, answer):
if k == K:
area = (xmax - xmin) * (ymax - ymin)
return min(answer, area)
for idx in range(len(bbox[k])):
x, y = bbox[k][idx]
new_xmax, new_xmin = max(xmax, x), min(xmin, x)
new_ymax, new_ymin = max(ymax, y), min(ymin, y)
if answer <= (new_xmax - new_xmin) * (new_ymax - new_ymin):
continue
answer = dfs(k + 1, new_xmin, new_xmax, new_ymin, new_ymax, answer)
return answer
print(dfs(0, 1000, -1000, 1000, -1000, float('inf')))