#include<bits/stdc++.h>
using namespace std;
int m,n,k,l,heng[2001],shu[2001],a,b,c,d,e=1,f=1,u;
struct fjg1{
int idx1,shu1;
}heng2[2001];
struct fjg2{
int idx2,shu2;
}shu2[2001];
bool cmp1(fjg1 x,fjg1 y){
if(x.shu1!=y.shu1) return x.shu1>y.shu1;
return x.idx1<y.idx1;
}
bool cmp3(fjg1 x,fjg1 y){
return x.idx1<y.idx1;
}
bool cmp4(fjg2 x,fjg2 y){
return x.idx2<y.idx2;
}
bool cmp2(fjg2 x,fjg2 y){
if(x.shu2!=y.shu2) return x.shu2>y.shu2;
return x.idx2<y.idx2;
}
int main(){
scanf("%d%d%d%d%d",&m,&n,&k,&l,&u);
for(int i=1;i<=u;i++){
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a==c) heng2[a].shu1++,heng2[a].idx1=min(b,d);
else shu2[b].shu2++,shu2[b].idx2=min(a,c);
}
sort(heng2+1,heng2+2001,cmp1);
sort(shu2+1,shu2+2001,cmp2);
sort(heng2+1,heng2+l+1,cmp3);
sort(shu2+1,shu2+k+1,cmp4);
for(int i=1;i<=k;i++){
printf("%d ",shu2[i].idx2);
}
printf("\n");
for(int i=1;i<=l;i++){
printf("%d ",heng2[i].idx1);
}
return 0;
}