Problem:


Score : 600 points

Problem Statement

There is a grid of squares with H+1 horizontal rows and W vertical columns.

You will start at one of the squares in the top row and repeat moving one square right or down. However, for each integer i from 1 through H, you cannot move down from the A_i-th, (A_i + 1)-th, \ldots, B_i-th squares from the left in the i-th row from the top.

For each integer k from 1 through H, find the minimum number of moves needed to reach one of the squares in the (k+1)-th row from the top. (The starting square can be chosen individually for each case.) If, starting from any square in the top row, none of the squares in the (k+1)-th row can be reached, print -1 instead.

Constraints

1 \leq H,W \leq 2\times 10^5

1 \leq A_i \leq B_i \leq W

Input

Input is given from Standard Input in the following format:

H W
A_1 B_1
A_2 B_2
:
A_H B_H

Output

Print H lines. The i-th line should contain the answer for the case k=i.

Sample Input 1

4 4
2 4
1 1
2 3
2 4

Sample Output 1

1
3
6
-1

Let (i,j) denote the square at the i-th row from the top and j-th column from the left.

For k=1, we need one move such as (1,1) → (2,1).

For k=2, we need three moves such as (1,1) → (2,1) → (2,2) → (3,2).

For k=3, we need six moves such as (1,1) → (2,1) → (2,2) → (3,2) → (3,3) → (3,4) → (4,4).

For k=4, it is impossible to reach any square in the fifth row from the top.



Sample input:
4 4
2 4
1 1
2 3
2 4


Sample output:
1
3
6
-1

Submission status: Wrong Answer

Solution code:
# compiled by pythran
"""
#pythran export main2()
import numpy as np
i4 = np.int32
i8 = np.int64


def solve(a, b, H, W):
    ret = np.empty(H, i8)
    for i in range(H):
        ret[i] = -1
    dp0 = np.arange(W)
    dp = np.arange(W)
    arg = 0
    for i in range(H):
        r1 = np.searchsorted(dp, a[i])
        r2 = np.searchsorted(dp, b[i])
        if b[i] == W:
            if r1 == 0:
                return ret
            else:
                dp0 = dp0[: r1]
                dp = dp[: r1]
        else:
            dp[r1:r2] = b[i]
        if r1 <= arg < r2:
            arg = np.argmin(dp - dp0)
        ret[i] = dp[arg] - dp0[arg] + i + 1
    return ret


def main(in_file):
    stdin = open(in_file)
    H, W = [int(x) for x in stdin.readline().split()]
    a = np.empty(H, i8)
    b = np.empty(H, i8)
    for i in range(H):
        a[i], b[i] = [int(x) for x in stdin.readline().split()]
    a -= 1
    ans = solve(a, b, H, W)
    return ans
    # p = '\n'.join([str(x) for x in ans])
    # print(p)


def main2():
    main('/dev/stdin')
"""
import os, sys
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
if len(sys.argv) == 1:
    import subprocess
    if p == "":
        pymain = "./" + pymain
    subprocess.call(pymain)
else:
    import gzip, base64, stat
    gz = b'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'
    bin = gzip.decompress(base64.b64decode(gz))
    with open(pymain, "wb") as f:
        f.write(bin)
    os.chmod(pymain, 0o775)