#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,k;
vector<int> a(N,0);
void solve(){
deque<int> dq_min,dq_max;
vector<int> res_min,res_max;
for(int i=1;i<=n;i++){
while(!dq_min.empty()&&a[i]<=a[dq_min.back()]){
dq_min.pop_back();
}
dq_min.push_back(i);
while(dq_min.front()<i-k+1){
dq_min.pop_front();
}
while(!dq_max.empty()&&a[i]>=a[dq_max.back()]){
dq_max.pop_back();
}
dq_max.push_back(i);
while(dq_max.front()<i-k+1){
dq_max.pop_front();
}
if(i>=k){
res_min.push_back(dq_min.front());
res_max.push_back(dq_max.front());
}
}
for(int i:res_min){
cout<<a[i]<<" ";
}
cout<<endl;
for(int i:res_max){
cout<<a[i]<<" ";
}
return;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
solve();
return 0;
}