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)
    dp = np.arange(W)
    dp0 = np.arange(W)
    edge = W
    for i in range(H):
        if b[i] == W:
            edge = np.searchsorted(dp[:edge], a[i])
            if edge == 0:
                ret[i] = -1
                return ret[: i + 1]
        else:
            r1 = np.searchsorted(dp[:edge], a[i])
            r2 = np.searchsorted(dp[:edge], b[i])
            dp[r1:r2] = b[i]
        ret[i] = (dp[:edge] - dp0[:edge]).min() + i + 1
        if i % 10000 == 0:
            m = 0
            prev = dp[0]
            for k in range(1, edge):
                if dp[k] > prev:
                    dp0[m] = k - 1
                    dp[m] = prev
                    m += 1
                    prev = dp[k]
            else:
                dp0[m] = edge - 1
                dp[m] = prev
                edge = m + 1

    return ret


def main(in_file):
    stdin = open(in_file)
    H, W = [int(x) for x in stdin.readline().split()]
    a = np.empty(W, i8)
    b = np.empty(W, 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)