#include<iostream>
#include<queue>
using namespace std;
#define For(i , j , k) for(int i = j;i <= k;i++)
#define MaxN 2000005
int N , M;
int num[MaxN];
deque <int> q;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0) , cout.tie(0);
cin >> N >> M;
For(i , 1 , N)
{
cin >> num[i];
if(i > M)
{
while(!q.empty() && q.front() < i-M) q.pop_front();
cout << num[ q.front() ] << endl;
}
else cout << (i == 1? 0 : num[ q.front() ]) << endl;
while(!q.empty() && num[ q.back() ] > num[i]) q.pop_back();
q.push_back(i);
}
return 0;
}
复杂度应该没有问题,但就是TLE了,求大佬指点qwq