#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int n, m, k, l, d; cin >>n>>m>>k>>l>>d; vector<int> row_count(n,0); vector<int> col_count(m,0); for (int i = 0; i < d; ++i) { int xi, yi, pi, qi; cin >>xi>>yi>>pi>>qi; if (xi == pi) { int col = min(yi, qi); col_count[col]++; } else if (yi == qi) { int row = min(xi, pi); row_count[row]++; } } vector<pair<int, int>> row_indices; for (int i = 1; i < n; ++i) { row_indices.emplace_back(row_count[i], i); } sort(row_indices.begin(), row_indices.end(), [](const pair<int, int>& a, const pair<int, int>& b) { if (a.first != b.first) return a.first > b.first; return a.second < b.second; }); sort(row_indices.begin(), row_indices.begin() + k, [](const pair<int, int>& a, const pair<int, int>& b) { return a.second < b.second; }); for (int i = 0; i < k; ++i) { if (i != 0) cout << " "; cout << row_indices[i].second; } cout << endl; vector<pair<int, int>> col_indices; for (int i = 1; i < m; ++i) { col_indices.emplace_back(col_count[i], i); } sort(col_indices.begin(), col_indices.end(), [](const pair<int, int>& a, const pair<int, int>& b) { if (a.first != b.first) return a.first > b.first; return a.second < b.second; }); sort(col_indices.begin(), col_indices.begin() + l, [](const pair<int, int>& a, const pair<int, int>& b) { return a.second < b.second; }); for (int i = 0; i < l; ++i) { if (i != 0) cout << " "; cout << col_indices[i].second; } cout << endl; return 0; }