#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> grid(n, vector<int>(m));
int max_val = 0, min_val = 101;
int max_row = 0, max_col = 0;
int min_row = 0, min_col = 0;
// 读取矩阵并记录最大最小值位置
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cin >> grid[i][j];
if (grid[i][j] > max_val) {
max_val = grid[i][j];
max_row = i;
max_col = j;
}
if (grid[i][j] < min_val) {
min_val = grid[i][j];
min_row = i;
min_col = j;
}
}
}
// 交换最大值和最小值的位置
swap(grid[max_row][max_col], grid[min_row][min_col]);
// 输出交换后的矩阵
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j) {
cout << grid[i][j];
if (j < m - 1) cout << " ";
}
cout << endl;
}
return 0;
}
/**************************************************************
Problem: 1999
User: fuyijun
Language: C++
Result: Accepted
Time:8 ms
Memory:2076 kb
****************************************************************/