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(ab, H, W):
    ret = np.empty(H, i8)
    dp = np.empty(W, i8)
    prev = np.zeros(W, i8)
    edge = 0
    for i in range(H):
        a = ab[2 * i]
        b = ab[2 * i + 1]
        if edge >= a:
            edge = max(edge, b + 1)
            if edge >= W:
                ret[i] = -1
                return ret[: i + 1]
        dp[edge] = prev[edge] + 1
        dmin = dp[edge]
        for j in range(edge + 1, W):
            if a <= j <= b:
                dp[j] = dp[j - 1] + 1
            else:
                dp[j] = min(prev[j], dp[j - 1]) + 1
            dmin = min(dmin, dp[j])
        ret[i] = dmin
        prev, dp = dp, prev
    return ret


def main(in_file):
    stdin = open(in_file)
    H, W = [int(x) for x in stdin.readline().split()]
    ab = [int(x) - 1 for x in stdin.read().split()]

    ans = solve(ab, 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)