#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct p{
int x,n;
}y[1001],x[1001];
bool cmp1(p a,p b){
return a.n>b.n;
}
bool cmp2(p a,p b){
return a.x<b.x;
}
int main(){
int m,n,k,l,d;
scanf("%d %d %d %d %d",&m,&n,&k,&l,&d);
int x1,y1,p1,q1;
for(int i=1;i<=d;i++){
scanf("%d %d %d %d",&x1,&y1,&p1,&q1);
if(x1==p1){
y[min(y1,q1)].x=min(y1,q1);
y[min(y1,q1)].n++;
}
if(y1==q1){
x[min(x1,p1)].x=min(x1,p1);
x[min(x1,p1)].n++;
}
}
sort(x+1,x+1+1000,cmp1);
// sort(y+1,y+1+1000,cmp1);
sort(x+1,x+1+k,cmp2);
sort(y+1,y+1+l,cmp2);
for(int i=1;i<=k;i++)
printf("%d ",x[i].x);
printf("\n");
for(int i=1;i<=l;i++)
printf("%d ",y[i].x);
return 0;
}
#include<algorithm>
#include<cmath>
using namespace std;
struct p{
int x,n;
}y[1001],x[1001];
bool cmp1(p a,p b){
return a.n>b.n;
}
bool cmp2(p a,p b){
return a.x<b.x;
}
int main(){
int m,n,k,l,d;
scanf("%d %d %d %d %d",&m,&n,&k,&l,&d);
int x1,y1,p1,q1;
for(int i=1;i<=d;i++){
scanf("%d %d %d %d",&x1,&y1,&p1,&q1);
if(x1==p1){
y[min(y1,q1)].x=min(y1,q1);
y[min(y1,q1)].n++;
}
if(y1==q1){
x[min(x1,p1)].x=min(x1,p1);
x[min(x1,p1)].n++;
}
}
sort(x+1,x+1+1000,cmp1);
// sort(y+1,y+1+1000,cmp1);
sort(x+1,x+1+k,cmp2);
sort(y+1,y+1+l,cmp2);
for(int i=1;i<=k;i++)
printf("%d ",x[i].x);
printf("\n");
for(int i=1;i<=l;i++)
printf("%d ",y[i].x);
return 0;
}