#include <iostream>
#include <algorithm>
using namespace std;
const int N(1005);
struct path{
	int no;int num;
};
path r[N],c[N];
int ansr[N],ansc[N]={0};
bool comp(const path &x,const path &y)
{
	return x.num>y.num;
}
bool comp2(const int &x,const int &y)
{
	return x<y;
}
int main()
{
	int m,n,k,l,d;
	cin>>m>>n>>k>>l>>d;
	for(int i=1;i<=m;i++)
	{
		r[i].no=i;
		r[i].num=0;
	}
	for(int i=1;i<=n;i++)
	{
		c[i].no=i;
		c[i].num=0;
	}
	int x,y,p,q;
	for(int i=1;i<=d;i++)
	{
		cin>>x>>y>>p>>q;
		if(x==p)
			c[min(y,q)].num++;
		if(y==q)
			r[min(x,p)].num++;
	}
	sort(r+1,r+m+1,comp);
	sort(c+1,c+n+1,comp);
	for(int i=1;i<=k;i++) ansr[i]=r[i].no;
	for(int i=1;i<=l;i++) ansc[i]=c[i].no;
	sort(ansr+1,ansr+1+k,comp2);
	sort(ansc+1,ansc+1+l,comp2);
	cout<<ansr[1];
	for(int i=2;i<=k;i++)
		cout<<" "<<ansr[i];
	cout<<endl;
	cout<<ansc[1];
	for(int i=2;i<=l;i++)
		cout<<" "<<ansc[i];
	cout<<endl;
	return 0;
}
/**************************************************************
	Problem: 2277
	User: admin
	Language: C++
	Result: Accepted
	Time:55 ms
	Memory:2104 kb
****************************************************************/