#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;
}