#include <iostream>
using namespace std;
const int MAX = 11;
//矩阵转置temp=a[i][j],a[i][j] = a[j][i]; a[j ][ i] = temp; 
int main() {
    int a[MAX][MAX] = {0};
    int n, m;
    cin >> n >>m;
    for (int i = 0; i< n; i++) {
        for (int j = 0; j < m ; j++){
            cin >> a[i][j];
        }
    }//存数据
    //进行矩阵的转置,n <= m只需对下三角进行转置
    if ( n <= m)
    for (int i = 0; i < n ; i++) {
        for (int j = i + 1  ; j <m ;j++){
            int temp = a[i][j];
            a[i][j] = a[j][i];
            a[j][i] = temp;
        }
    }
    // n > m, 对上三角进行转置
	else {
		for (int i = 0; i < n ; i++) {
        for (int j = 0 ; j < i ;j++){
            int temp = a[i][j];
            a[i][j] = a[j][i];
            a[j][i] = temp;
        }
    }
	} 
    for (int i = 0; i < m; i++ ) {
        for (int j = 0; j < n; j++){
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}