//滑动窗口
#include<iostream>
#include<set>
using namespace std;
using ll = long long;
const int N = 2e6+9;
ll a[N], mx[N], mi[N];
void solve()
{
int n, k; cin >> n >> k;
for (int i = 1; i <= n; ++i)cin >> a[i];
multiset<ll> mst;
for (int i = 1; i <= n; ++i)
{
mst.insert(a[i]);
if (i >= k) mi[i] = *mst.begin(), mx[i] = *mst.rbegin(), mst.erase(mst.find(a[i - k + 1]));
}
for (int i = k; i <= n; ++i)cout << mx[i] << " \n"[i == n];
for (int i = k; i <= n; ++i)cout << mi[i] << " \n"[i == n];
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
solve();
return 0;
}