#include <iostream>
#include <unordered_map>
#include<vector>
#include <algorithm>
using namespace std;
int main() {
int n,m,k,l,d;
cin>>n>>m>>k>>l>>d;
unordered_map<int ,int> row_gaps;
unordered_map<int, int> col_gaps;
while(d--){
int x,y,p,q;
cin>>x>>y>>p>>q;
if(x==p){
int gap_col =min(y,q);
col_gaps[gap_col]++;
}else if(y==q){
int gap_row=min(x,p);
row_gaps[gap_row]++;
}
}
vector<pair<int,int>> row_pairs,col_pairs;
for(auto& p:row_gaps){
row_pairs.emplace_back(p.second,p.first);
}
for(auto&p:col_gaps){
col_pairs.emplace_back(p.second,p.first);
}
sort(row_pairs.begin(),row_pairs.end(),greater<pair<int, int>>());
sort(col_pairs.begin(),col_pairs.end(),greater<pair<int, int>>());
vector<int> selected_rows,selected_cols;
for (int i = 0; i < k && i < row_pairs.size(); ++i) {
selected_rows.push_back(row_pairs[i].second);
}
for (int i = 0; i < l && i < col_pairs.size(); ++i) {
selected_cols.push_back(col_pairs[i].second);
}
sort(selected_rows.begin(), selected_rows.end());
sort(selected_cols.begin(), selected_cols.end());
for (int i = 0; i < selected_rows.size(); ++i) {
if (i > 0) cout << " ";
cout << selected_rows[i];
}
cout << endl;
for (int i = 0; i < selected_cols.size(); ++i) {
if (i > 0) cout << " ";
cout << selected_cols[i];
}
cout << endl;
return 0;
}
// 64 位输出请用 printf("%lld")