Snuke has a permutation (P_0,P_1,\cdots,P_{N-1}) of (0,1,\cdots,N-1).

Now, he will perform the following operation exactly once:

* Choose K consecutive elements in P and sort them in ascending order.



Find the number of permutations that can be produced as P after the operation.

Constraints

* 2 \leq N \leq 200000
* 2 \leq K \leq N
* 0 \leq P_i \leq N-1
* P_0,P_1,\cdots,P_{N-1} are all different.
* All values in input are integers.

Input

Input is given from Standard Input in the following format:


N K
P_0 P_1 \cdots P_{N-1}


Output

Print the number of permutations that can be produced as P after the operation.

Examples

Input

5 3
0 2 1 4 3


Output

2


Input

4 4
0 1 2 3


Output

1


Input

10 4
2 0 1 3 7 5 4 6 8 9


Output

6
from collections import deque



# s = input()
# n = int(input())
N, K = map(int, input().split())
P = list(map(int, input().split()))

disordered_count = [0]

for i in range(N-1):
    if P[i] > P[i+1]:
        disordered_count.append(disordered_count[i]+1)
    else:
        disordered_count.append(disordered_count[i])

ordered = 0

def interval_min(a, K):
    q = deque()
    min_array = []
    for i, v in enumerate(a):
        while len(q) != 0 and a[q[len(q)-1]] > v:
            q.pop()

        q.append(i)

        if i >= K-1:
            min_array.append(q[0])
            if q[0] == len(min_array)-1:
                q.popleft()
    return min_array

def interval_max(a, K):
    return interval_min([-i for i in a], K)

res = 0
min_array = interval_min(P, K)
max_array = interval_max(P, K)

# print(N,K)
# print(P)
# print(max_array)

for i in range(N-K+1):
    if disordered_count[i] == disordered_count[i+K-1]:
        ordered = 1
    else:
        if i == 0:
            res += 1
        else:
            if not (P[i-1] == P[min_array[i-1]] and P[i+K-1] == P[max_array[i]]):
                res += 1
    # print(P[i:i+K], res)


print(res+ordered)


