#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long
const int N=1e6+10;
int a[N];
struct Node{int num,id;};
signed main(){
int n,k;cin>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i];
deque<Node> Q;
Q.push_back((Node){a[1],1});
int l=1,r=1;
for(int i=2;i<=n+1;i++){
if(i>k) printf("%d\n",r-l+1);
if(i>n) return 0;
if(r-l+1==k){
Q.pop_front();
l=Q.front().id;
}
while(!Q.empty()){
if(a[i]>=Q.back().num) Q.pop_back();
else break;
}
if(Q.empty()) l=i,r=i-1;
Q.push_back((Node){a[i],i});
++r;
}
}