Scanf.scanf "%d %d" (fun n k ->
    let p = Array.init n (fun _ -> Scanf.scanf " %d" (fun p -> p)) in
    let module S = Set.Make (struct type t = int let compare = compare end) in

    let rec loop i streak count =
        if i = n then count else
            let streak = if p.(i - 1) < p.(i) then streak + 1 else 0 in
            let count = if streak = k - 1 then count + 1 else count in
            loop (i + 1) streak count
    in
    let count = loop 1 0 0 in

    let rec loop i set acc =
        if i = n then acc else
            let set = S.remove p.(i - k) set in
            let nmi = S.min_elt set in
            let nmx = S.max_elt set in
            let acc = if p.(i - k) > nmi || p.(i) < nmx then acc + 1 else acc in
            let set = S.add p.(i) set in
            loop (i + 1) set acc
    in
    let init =
        let rec loop i set =
            if i = k then set else loop (i + 1) (S.add p.(i) set)
        in
        loop 0 S.empty
    in
    let ans = loop k init 1 in
    Printf.printf "%d\n" (ans - max 0 (count - 1))
)