#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")