#include<bits/stdc++.h>
using namespace std;
int x[1001][1001],y[1001][1001];
struct zb{
int x;
int y;
int t=0;
};
bool cmp(zb a,zb b){
if(a.t>=b.t)return 0;
else return 1;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int m,n,k,l,d;
cin>>m>>n>>k>>l>>d;
int a[d+1][5];
for(int j=1;j<=d;j++){
cin>>a[j][1]>>a[j][2]>>a[j][3]>>a[j][4];
if(a[j][1]==a[j][3]){
a[j][0]=0;y[max(a[j][2],a[j][4])][min(a[j][2],a[j][4])]++;
}
else{
a[j][0]=1;x[max(a[j][1],a[j][3])][min(a[j][1],a[j][3])]++;
}
}
zb p[k+1];
int u=0;
for(int j=1;j<=n+abs(n-m)+1;j++){
for(int i=1;i<=m+abs(n-m)+1;i++){
if(x[j][i]>0){
p[++u].t=x[j][i];
p[u].x=j;
p[u].y=i;
}
}
if(u==k)break;
}
sort(p+1,p+1+k,cmp);
for(int j=1;j<=k;j++){
cout<<min(p[j].x,p[j].y)<<" ";
}
cout<<endl;
zb q[l+1];
int v=0;
for(int j=1;j<=n+abs(n-m)+3;j++){
for(int i=1;i<=m+abs(n-m)+3;i++){
if(y[j][i]>0){
q[++v].t=y[j][i];
q[v].x=j;
q[v].y=i;
}
}
if(v==l)break;
}
sort(q+1,q+1+l,cmp);
for(int j=1;j<=l;j++){
cout<<min(q[j].x,q[j].y)<<" ";
}
return 0;
}
提一些根本性原因,赘言部分可以忽略