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)
    arg0 = W - 1
    arg = -1
    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 arg0 > -1:
            if r1 <= arg0 < r2:
                for j in range(r1 - 1, -1, -1):
                    if dp[j] == j:
                        arg0 = j
                        ret[i] = i + 1
                        break
                else:
                    arg0 = -1
                    arg = r1
            else:
                ret[i] = i + 1
        if arg0 == -1:
            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)
    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)