#include <algorithm>
#include <unordered_map>
#include <iostream>
#include <vector>
using namespace std;

bool cmp(const pair<int, int> a1,const pair<int, int> a2)
{
    return a1.second>a2.second;
}

int main() {
    int n,m,k,l,d;cin>>n>>m>>k>>l>>d;
    unordered_map<int,int> r,c;
    //统计每条横竖分割的对数
    for(int i=0;i<d;i++)
    {
        int ax,ay,bx,by;cin>>ax>>ay>>bx>>by;
        if(ax==bx) c[min(ay,by)]++;
        else r[min(ax,bx)]++;
    }
    //每条横分割的按由降序排列,取出答案放入ans再升序排列
    vector<pair<int,int> > a;
    vector<int> ans;
    for(int i=1;i<=n;i++)
        a.push_back({i,r[i]});
    sort(a.begin(), a.end(), cmp);
    for(int i=0;i<k;i++)
        ans.push_back(a[i].first);
    sort(ans.begin(),ans.end());
    for(auto&i:ans)
    cout<<i<<' ';
    cout<<endl;
    a.clear();ans.clear();
    //和上面操作一样,就改一下
    for(int i=1;i<=m;i++)
    a.push_back({i,c[i]});
    sort(a.begin(), a.end(), cmp);
    for(int i=0;i<l;i++)
        ans.push_back(a[i].first);
    sort(ans.begin(),ans.end());
    for(auto&i:ans)
    cout<<i<<' ';
    cout<<endl;
}