import sys, time, random from collections import deque, Counter, defaultdict input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 63 - 1 mod = 998244353 n, m = mi() XYH = [li() for _ in range(n)] XYH = [[v[0] - v[1], v[0] + v[1],m - v[2]] for v in XYH] L = [] for x, y, h in XYH: L.append((x - h, y - h, 1)) L.append((x + h, y - h, -1)) L.append((x - h, y + h, -1)) L.append((x + h, y + h, 1)) L.sort() a = [0] * (n + 1) ans = [0] * (n + 1) now = [] nowx = -inf for x, y, c in L: if nowx != x: now.sort() cnt = 0 bef = -inf for i in range(0, len(now)-1): cnt += now[i][1] ans[cnt] += (now[i + 1][0] - now[i][0]) * (x - nowx) nowx = x now.append((y, c)) for v in [v * pow(2, mod - 2, mod) % mod for v in ans[1:]]: print(v)