#include<bits/stdc++.h>
using namespace std;
int main() {
queue<int>q;
stack<int>s;
vector<int>v;
int n, m, k;
cin >> n >> m >> k;
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
q.push(x);
}
while (!q.empty() || !s.empty()) {
if (v.size() == k ||
v.size() > 0 && (s.size() > 0 && s.top() > v.back() && q.empty() ||
s.size() == m && q.size() > 0 && q.front() > v.back())) {
for(int i = 0; i < v.size(); ++i) {
cout << v[i] << " \n"[i == v.size() - 1];
}
v.clear();
}
if (s.size() > 0 && (v.empty() || s.top() <= v.back())) {
v.push_back(s.top());
s.pop();
} else if (q.size() > 0) {
if((v.empty() || q.front() <= v.back()))
v.push_back(q.front());
else
s.push(q.front());
q.pop();
}
}
for(int i = 0; i < v.size(); ++i) {
cout << v[i] << " \n"[i == v.size() - 1];
}
return 0;
}