#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
typedef long long ll;
typedef pair<int,int>P;

const int MOD=1000000007;
const int INF=0x3f3f3f3f;
const ll INFL=0x3f3f3f3f3f3f3f3f;

int a[300000];
int main(){
	int n,K;cin>>n>>K;
	rep(i,n)scanf("%d",&a[i]);
	set<int>se;
	deque<P>que;
	int cnt=0;
	rep(i,K){
		se.insert(a[i]);
		if(!que.empty()&&que.back().first>a[i]){
			que.clear();
		}
		que.push_back(P(a[i],i));
	}
	bool F=false;
	if(que.front().second>0){
		cnt=1;
	}
	else F=true;
	for(int i=K;i<n;i++){//[i-K+1,i]
		bool flag=false;
		if(a[i-K]!=*se.begin()){
			flag=true;
		}
		se.erase(a[i-K]);
		if(*se.rbegin()>a[i]){
			flag=true;
		}
		se.insert(a[i]);
		if(!que.empty()&&que.back().first>a[i])que.clear();
		que.push_back(P(a[i],i));
		if(que.front().second>i-K+1){
			cnt+=flag;
		}
		else F=true;
	}
	cout<<cnt+F<<endl;
}