#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;
}