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

        if i % 1000 == 999:
            m = 0
            prev = dp[0]
            for k in range(1, dp.shape[0]):
                if dp[k] > prev:
                    dp0[m] = k - 1
                    dp[m] = prev
                    m += 1
                    prev = dp[k]
            else:
                dp0[m] = dp0[-1]
                dp[m] = prev
                m += 1
            dp0 = dp0[: m]
            dp = dp[: m]
            arg = np.argmin(dp - dp0)
    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)
    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)