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