#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<deque>
using namespace std;
const int N=1e6+10;
int a[N];
deque<int> q;
int n,m;
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
{
while(!q.empty()&&a[q.back()]>a[i]) q.pop_back();//?β
q.push_back(i);
if(i>=m-1)
{
while(!q.empty()&&q.front()<i-m+1) q.pop_front();//??
cout<<a[q.front()]<<" ";
}
}
cout<<endl;
q.clear();
for(int i=0;i<n;i++)
{
while(!q.empty()&&a[q.back()]<a[i]) q.pop_back();//?β
q.push_back(i);
if(i>=m-1)
{
while(!q.empty()&&q.front()<i-m+1) q.pop_front();//
cout<<a[q.front()]<<" ";
}
}
return 0;
}
09-27
444
09-30
516