#include<stdio.h>
#include <iostream>
using namespace std;
//除了最后一列全都右移。最后一列的最后一个放最后一列的顶上。
//1.a队头出来放队尾。2.3.a的最后一个队列的队头出来放队尾
int Begin=0;
int n,m,k;
int main()
{
cin>>n>>m;
int a[n+1][m];
for(int i=0;i<n;i++) for(int j=0;j<m;j++) cin>>a[i][j];
for(int i=0;i<m;i++){a[n][i]=0;}
cin>>k;
for(int i=0;i<k;i++){
Begin=(Begin+m-1)%m;
a[n][Begin]=(a[n][Begin]+n-1)%n;
}
/*
for(int i=0;i<=n;i++){
for(int j=0;j<m;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<Begin<<endl;
*/
int b[n][m];
int y=0;
for(int i=Begin;i<=m-1;i++){
int x=0;
for(int j=a[n][i];j<=n-1;j++){b[x][y]=a[j][i];x++;}
for(int j=0;j<a[n][i];j++){b[x][y]=a[j][i];x++;}
y++;
}
for(int i=0;i<Begin;i++){
int x=0;
for(int j=a[n][i];j<=n-1;j++){b[x][y]=a[j][i];x++;}
for(int j=0;j<a[n][i];j++){b[x][y]=a[j][i];x++;}
y++;
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)cout<<b[i][j]<<" ";
cout<<endl;
}
return 0;
}