#include# include#includeusing namespace std;// 判断是否为山峰bool isPeak(const vector>& land, int i, int j, int n, int m) {int val = land[i][j];int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};for (int k = 0; k < 4; k++) {int ni = i + dirs[k][0];int nj = j + dirs[k][1];if (ni >= 0 && ni < n && nj >= 0 && nj < m && land[ni][nj] >= val) {return false;}}return true;}int main() {int n, m, T;cin >> n >> m;vector> land(n, vector(m));for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> land[i][j];}}cin >> T;for (int t = 0; t < T; t++) {int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;swap(land[x1 - 1][y1 - 1], land[x2 - 1][y2 - 1]);}vector> peaks;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (isPeak(land, i, j, n, m)) {peaks.push_back({i + 1, j + 1});}}}sort(peaks.begin(), peaks.end());cout << peaks.size() << endl;for (const auto& peak : peaks) {cout << peak.first << " " << peak.second << endl;}return 0;}