#include <stdlib.h>
#include <assert.h>    //n 行 m 列

void Transposition(int *p, int n, int m)
{
    for(int i = 0; i < m; i++)                //输入m行
    {
        int count = n;                        //一行输入n个元素
        for(int j = i; count > 0; j += m)     //每个元素相距m个元素
        {
            printf("%d ", p[j]);
            count--;
        }
        printf("\n");
    }
}

int main()
{
    int n,m,i;
    int *p;
    scanf("%d %d", &n, &m);
    p = (int*)malloc((m * n) * sizeof(int));
    assert(p);
    for(i = 0; i < n * m; i++)
    {
        scanf("%d ", &p[i]);
    }
    Transposition(p, n, m);
    free(p);
    return 0;
}