RE#11 #14 #18
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
ll n,m,k;
ll a[100][100];
struct node{
ll sum;
ll num;
}aa[55];
bool cmp(node x,node y){
return x.sum>y.sum;
}
bool cmp1(ll x,ll y){
return x>y;
}
void px(){
for(ll i=1;i<=m;i++){
aa[i].sum=0;
}
for(ll i=1;i<=n;i++){
for(ll j=1;j<=m;j++){
aa[j].num=j;
aa[j].sum+=a[i][j];
}
}
}
int main(){
IOS
cin>>n>>m>>k;
for(ll i=1;i<=n;i++){
for(ll j=1;j<=m;j++){
cin>>a[i][j];
}
}
while(k--){
px();
sort(aa+1,aa+1+m,cmp);
ll b[1000];
ll k1=0;
for(ll i=1;i<=m;i++){
if(aa[i].sum==aa[i-1].sum||i==1){
for(ll j=1;j<=n;j++){
k1++;
b[k1]=a[j][aa[i].num];
a[j][aa[i].num]=0;
}
}
else break;
}
for(ll i=m;i>=1;i--){
if(aa[i].sum==aa[i+1].sum||i==m){
for(ll j=1;j<=n;j++){
k1++;
b[k1]=a[j][aa[i].num];
a[j][aa[i].num]=0;
}
}
else break;
}
sort(b+1,b+1+k1,cmp1);
ll k2=1;
for(ll i=1;i<=n;i++){
if(i%2==1){
for(ll j=1;j<=m;j++){
if(a[i][j]==0){
a[i][j]=b[k2];
k2++;
}
}
}
else{
for(ll j=m;j>=1;j--){
if(a[i][j]==0){
a[i][j]=b[k2];
k2++;
}
}
}
}
}
for(ll i=1;i<=n;i++){
for(ll j=1;j<=m;j++){
cout<<a[i][j]<<" ";
}
cout<<"\n";
}
return 0;
}
/*
*/