#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
const int N=2e4+15;
struct node{
int val,id;
};
node dx[N],dy[N];
int read()
{
int t=1,x=0;
char ch=getchar();
while(ch<'0' || ch>'9')
{
if(ch=='-')
t=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
{
x=x*10+ch-'0';
ch=getchar();
}
return x*t;
}
bool cmp(node x,node y)
{
return x.val>y.val;
}
int main()
{
int n=read(),m=read(),k=read(),l=read(),d=read();
for(int i=1;i<=n;i++)
{
dx[i].id=i;
}
for(int i=1;i<=m;i++)
{
dy[i].id=i;
}
for(int i=1;i<=d;i++)
{
int x1=read(),y1=read(),x2=read(),y2=read();
if(x1==x2)
{
dy[min(y2,y1)].val++;
}
else if(y1==y2)
{
dx[min(x1,x2)].val++;
}
}
sort(dy+1,dy+1+m,cmp);
sort(dx+1,dx+1+n,cmp);
for(int i=1;i<=k;i++)
{
printf("%d ",dx[i].id);
}
puts("");
for(int i=1;i<=l;i++)
{
printf("%d ",dy[i].id);
}
return 0;
}