#!/usr/bin/python3 import bisect import collections import heapq import itertools import math import os import sys def main(): n, x = read_ints() A = [None] * n B = [None] * n for i in range(n): A[i], B[i] = read_ints() ans = [0] * x for j in range(1, x + 1): t = 0 for i in range(n): t = max(t, B[i] - abs(j - A[i])) ans[j - 1] = t print(*ans) ############################################################################### DEBUG = 'DEBUG' in os.environ def inp(): return sys.stdin.readline().rstrip() def read_int(): return int(inp()) def read_ints(): return [int(e) for e in inp().split()] def list2d(d1, d2, init=None): return [[init] * d2 for _ in range(d1)] def list3d(d1, d2, d3, init=None): return [[[init] * d3 for _ in range(d2)] for _ in range(d1)] def list4d(d1, d2, d3, d4, init=None): return [[[[init] * d4 for _ in range(d3)] for _ in range(d2)] for _ in range(d1)] def debug(fmt, *args): if DEBUG: if args: print(fmt.format(*args), file=sys.stderr) else: print(fmt, file=sys.stderr) if __name__ == '__main__': main()