#include <stdio.h>

int i,n,l,rez,p,mn,mx,sol;
int a[800001];
bool ok1;

int cautmin(int i,int st,int dr) {
	int q,k;
	bool ok;
	ok=false;
	q=0;
	for (k=st; k<=dr; k++) 
		if (k!=i) {
			if (a[i]>a[k]) q++;
			if (q==l) {
				ok=true;
				break;
			}
		}
	rez=q;
	if (ok) return 1;
	return 0;
}
		
void solve(int i,int st,int dr,int &mn,int &mx) {
	int q,k;
	bool ok;
	ok=false;
	q=0;
	for (k=st; k<=dr; k++) 
		if (k!=i) {
			if (a[i]>a[k]) mn++;
			else mx++;
		}
}


int main () {
	freopen("echilibru.in","r",stdin);
	freopen("echilibru.out","w",stdout);
	scanf("%d%d",&n,&l);
	for (i=1; i<=n; i++) scanf("%d",&a[i]);
	p=l+1;
	mn=0; mx=0;
	for (i=1; i<=2*l+1; i++) 
		if (i!=p) {
			if (a[i]<a[p]) mn++;
			else mx++;
		}
		
	sol=0;
	if (mx==l && mn==l) sol=1;

	for (i=l+2; i<=n-l; i++) {
		/*if (a[i]<=a[i+1]) {
			y=mx;
		    if (a[i-l]>a[i]) y--;
			if (a[i]<a[i-1]) mx++;
		    if (mx==l) {
				rez=0;
				ok1=cuatmin(i,i-l,i+l); 
				mn=rez;
				mx=2*l-mn;
			}
		*/
		mn=0;
		mx=0;
		solve(i,i-l,i+l,mn,mx);
		if (mn==l && mx==l) sol++;
	}
	printf("%d\n",sol);
	return 0;
}
		
				
				
				
				
				
		