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 % 1000000 == 999999:
            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[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)