#include<bits/stdc++.h>
using namespace std;
const int MAXN=801;
int n,m,k,a[MAXN][MAXN],l[MAXN],sum=1;
priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > >q;
priority_queue<int,vector<int>,greater<int> >ans;
void work(int nn,int sumn)
{
if(nn>n){
ans.push(sumn);
return ;
}
for(int i=1;i<=l[nn];i++)
work(nn+1,sumn+a[nn][i]);
}
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
int c[MAXN];
for(int j=1;j<=m;j++)
cin>>c[j];
sort(c+1,c+m+1);
for(int j=1;j<=m;j++){
a[i][j]=c[j];
if(j!=1)q.push(make_pair(a[i][j],i));
}
l[i]++;
}
while(sum<k){
int s=q.top().second;
l[s]++;
sum=sum/(l[s]-1)*l[s];
q.pop();
}
work(1,0);
while(k--){
cout<<ans.top()<<" ";
ans.pop();
}
return 0;
}