n,m=list(map(int,input().split()))
matrix=[]
#逐行读取矩阵数据
for i in range(n):
    row=list(map(int,input().split()))
    matrix.append(row)

# 创建转置矩阵(m行n列)
transposed=[]
for j in range(m):
    new_row=[0]*n
    transposed.append(new_row)
# 填充转置矩阵
# 遍历原矩阵的行列
for i in range(n):
    for j in range(m):
        # 行列互换
        transposed[j][i]=matrix[i][j]

for row in transposed:
    print(" ".join(map(str,row))+" ")