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: Accepted

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 = 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]
            if arg0 > -1:
                for j in range(m - 1, -1, -1):
                    if dp[j] == dp0[j]:
                        arg0 = j
                        break
            else:
                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)