#include <bits/stdc++.h>
#define int long long
using namespace std;
typedef pair<int,int> pii;
bool cmp(pair<vector<int>,int> p1, pair<vector<int>,int> p2) {
vector<int> v1 = p1.first, v2 = p2.first;
int id1 = p1.second, id2 = p2.second;
int s1=0; for(int x:v1)s1+=x;
int s2=0; for(int x:v2)s2+=x;
if(s1!=s2) {
return s1>s2;
}
else return id1<id2;
}
signed main() {
int n,m,k; cin>>n>>m>>k;
vector<pair<vector<int>, int>> a(n);
for(int i=0;i<n;i++) {
vector<int> score(m);
for(int j=0;j<m;j++)cin>>score[j];
a[i]={score,i};
}
sort(a.begin(),a.end(),cmp);
sort(a[0].first.begin(), a[0].first.end());
sort(a[1].first.begin(), a[1].first.end(), greater<int>());
for(int i=0;i<m;i++) cout<<(a[0].first)[i]<<" ";
cout<<"\n";
for(int i=0;i<m;i++) cout<<(a[1].first)[i]<<" ";
cout<<"\n";
int mn=0; for(int x: a[0].first)mn+=x;
int s=0; for(int x: a[1].first)s+=x;
int mx=s;
int ans=0;
for(int i=0;i<m;i++) {
mn-=(a[0].first)[i];
if((a[0].second>a[1].second && mn>mx) || (a[1].second>a[0].second && mn>=mx)) {
ans=max(ans,i+1);
}
for(int j=0;j<m;j++) {
mx+=k-(a[1].first)[j];
if((a[0].second>a[1].second && mn>mx) || (a[1].second>a[0].second && mn>=mx)) {
ans=max(ans,i+1+j+1);
cout<<mn<<" "<<mn<<"\n";
cout<<i<<" "<<j<<"\n";
}
}
mx=s;
}
cout<<n*m-ans;
return 0;
}