#include <iostream>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    int a[200][200];
    #include <iostream>
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    int a[200][200];
    
    // 读取数组
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> a[i][j];
        }
    }
    
    // 初始化最大值和最小值及其位置
    int max_val = a[0][0];  // 初始化为第一个元素
    int min_val = a[0][0];
    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++) {
            if (a[i][j] > max_val) {
                max_val = a[i][j];
                max_row = i;
                max_col = j;
            }
            if (a[i][j] < min_val) {
                min_val = a[i][j];
                min_row = i;
                min_col = j;
            }
        }
    }
    
    // 交换最大值和最小值
    swap(a[max_row][max_col], a[min_row][min_col]);
    
    // 输出交换后的数组
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    
    return 0;
}
/**************************************************************
	Problem: 1999
	User: panyuchen
	Language: C++
	Result: Compile Error
****************************************************************/