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: Time Limit Exceeded

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] = dp0[k - 1]
                    dp[m] = prev
                    m += 1
                    prev = dp[k]
            else:
                dp0[m] = dp0[dp0.shape[0] - 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)