题意:

思路:
%E5%92%8C(p%2Cq)%E7%9A%84x%20%3D%3D%20p%2C%E8%AF%B4%E6%98%8E%E8%A6%81%E7%94%A8%E4%B8%80%E6%9D%A1%E7%AB%96%E7%BA%BF%E5%8E%BB%E9%9A%94%E5%BC%80&preview=true)


#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
const int N = 1e3 + 10;
struct X{
int id,val = 0;
}x[N];
struct Y{
int id,val = 0;
}y[N];
bool cmp1(X a,X b){
return a.val > b.val;
}
bool cmp2(Y a,Y b){
return a.val > b.val;
}
int n,m,k,l,d;
int main(){
scanf("%d%d%d%d%d",&n,&m,&k,&l,&d);
for(int i = 1;i <= d;i++){
int xi,yi,pi,qi;scanf("%d%d%d%d",&xi,&yi,&pi,&qi);
if(xi == pi) y[min(yi,qi)].val++;
else x[min(xi,pi)].val++;
}
for(int i = 1;i < N;i++) x[i].id = i,y[i].id = i;
sort(x + 1,x + 1 + n,cmp1);sort(y + 1,y + 1 + m,cmp2);
vector<int> id;
for(int i = 1;i <= k;i++){
id.push_back(x[i].id);
}
sort(id.begin(),id.end());
for(int x:id) printf("%d ",x);
puts("");
id.clear();
for(int i = 1;i <= l;i++){
id.push_back(y[i].id);
}
sort(id.begin(),id.end());
for(int x:id) printf("%d ",x);
puts("");
}