import  java.io.BufferedOutputStream ; 
import  java.io.BufferedReader ; 
import  java.io.FileInputStream ; 
import  java.io.FileNotFoundException ; 
import  java.io.FileOutputStream ; 
import  java.io.IOException ; 
import  java.io.InputStream ; 
import  java.io.InputStreamReader ; 
import  java.io.OutputStream ; 
import  java.io.PrintWriter ; 
import  java.util.Arrays ; 
import  java.util.StringTokenizer ; 
 
public  class  Main { 
	public  static  void  main
( String [ ]  args
)  {  		try  { 
		} 
		Kattio io =  new  Kattio( input, output) ; 
		//int t=io.getInt(); 
		//for (int i=1; i<=t; i++) 
		( new  Solve( io) ) .main ( ) ; 
		io.close ( ) ; 
 
			try  { 
				input.close ( ) ; 
			} 
			try  { 
				output.close ( ) ; 
			} 
	} 
} 
 
class  RMQ
{ 
	int  n; 
	int [ ]  arr; 
	int [ ]  l,r; 
	int [ ]  dat; 
	int [ ]  pos; 
 
	public  RMQ( int  n) 
	{ 
		this .n  =  n; 
		arr =  new  int [ n+ 1 ] ; 
		dat =  new  int [ 4 * n+ 1 ] ; 
		l =  new  int [ 4 * n+ 1 ] ; 
		r =  new  int [ 4 * n+ 1 ] ; 
		pos =  new  int [ n+ 1 ] ; 
		RMQHelper( 1 ,1 ,n) ; 
	} 
 
	private  void  RMQHelper( int  i,int  x,int  y) 
	{ 
		l[ i] = x; 
		r[ i] = y; 
		if  ( x== y) 
		{ 
			dat[ i] = arr[ x] ; 
			pos[ x] = i; 
		} 
		else 
		{ 
			int  m= ( x+ y) / 2 ; 
			RMQHelper( i* 2 ,x,m) ; 
			RMQHelper( i* 2 + 1 ,m+ 1 ,y) ; 
			dat
[ i
] = Math .
max ( dat
[ i
* 2 ] , dat
[ i
* 2 + 1 ] ) ; 		} 
	} 
 
	public  void  update( int  x,int  y) 
	{ 
		arr[ x]  =  y; 
		dat[ pos[ x] ]  =  y; 
		updateHelper( pos[ x] / 2 ) ; 
	} 
 
	private  void  updateHelper( int  x) 
	{ 
		if  ( x== 0 )  return ; 
 
		dat
[ x
]  =  Math .
max ( dat
[ x
* 2 ] ,dat
[ x
* 2 + 1 ] ) ; 		updateHelper( x/ 2 ) ; 
	} 
 
	public  int  get( int  l,int  r) 
	{ 
		return  getHelper( 1 ,l,r) ; 
	} 
 
	private  int  getHelper( int  i,int  x,int  y) 
	{ 
		int  res; 
		if  ( y< l[ i]  ||  x> r[ i] )  res= 0 ; 
		else 
		if  ( x<= l[ i]  &&  r[ i] <= y)  res= dat[ i] ; 
		else 
		{ 
			res= getHelper( i* 2 ,x,y) ; 
			res
= Math .
max ( res,getHelper
( i
* 2 + 1 ,x,y
) ) ; 		} 
 
		return  res; 
	} 
 
	@Override
		return  "RMQ [n="  +  n 
+  ", arr="  +  Arrays .
toString ( arr
)  +  ", l="  +  Arrays .
toString ( l
)  +  ", r="  				+  Arrays .
toString ( r
)  +  ", dat="  +  Arrays .
toString ( dat
)  +  ", pos="  +  Arrays .
toString ( pos
)  +  "]" ;  	} 
 
 
} 
 
class  Solve { 
	Kattio io; 
	int  n,m,k; 
	int [ ] [ ]  a; 
	RMQ[ ]  ds; 
	Solve( Kattio io)  { 
		this .io  =  io; 
	} 
 
	boolean  check( int  l,int  r) 
	{ 
		if  ( r> n)  return  false ; 
		int  sum =  0 ; 
		for  ( int  i= 1 ;  i<= m;  i++ ) 
			sum+= ds[ i] .get ( l, r) ; 
		return  ( sum<= k) ; 
	} 
 
	void  main( )  { 
		n= io.getInt ( ) ; 
		m= io.getInt ( ) ; 
		k= io.getInt ( ) ; 
		a =  new  int [ n+ 1 ] [ m+ 1 ] ; 
		for  ( int  i= 1 ;  i<= n;  i++ ) 
			for  ( int  j= 1 ;  j<= m;  j++ ) 
				a[ i] [ j] = io.getInt ( ) ; 
 
		ds =  new  RMQ[ m+ 1 ] ; 
 
		for  ( int  i= 1 ;  i<= m;  i++ ) 
		{ 
			ds[ i]  =  new  RMQ( n) ; 
			for  ( int  j= 1 ;  j<= n;  j++ ) 
				ds[ i] .update ( j, a[ j] [ i] ) ; 
		} 
 
		//for (int i=1; i<=m; i++) 
		//	io.println(ds[i]); 
 
		int  res =  0 ; 
		int  vtres =  0 ; 
		for  ( int  i= 1 ;  i<= n;  i++ ) 
		{ 
			int  dau =  i, cuoi =  n; 
			do 
			{ 
				int  giua= ( dau+ cuoi) / 2 ; 
				if  ( check( i,giua) )  dau= giua+ 1 ; 
				else  cuoi= giua- 1 ; 
			} 
			while  ( dau<= cuoi) ; 
 
			if  ( cuoi- i+ 1 > res) 
			{ 
				res= cuoi- i+ 1 ; 
				vtres= i; 
			} 
		} 
 
		for  ( int  i= 1 ;  i<= m;  i++ ) 
			io.print ( ds[ i] .get ( vtres,vtres+ res- 1 ) + " " ) ; 
 
	} 
} 
 
	} 
 
	} 
 
	public  boolean  hasMoreTokens( )  { 
		return  peekToken( )  !=  null ; 
	} 
 
	public  int  getInt( )  { 
		return  Integer .
parseInt ( nextToken
( ) ) ;  	} 
 
	public  double  getDouble( )  { 
		return  Double .
parseDouble ( nextToken
( ) ) ;  	} 
 
	public  long  getLong( )  { 
		return  Long .
parseLong ( nextToken
( ) ) ;  	} 
 
		return  nextToken( ) ; 
	} 
 
 
		if  ( token ==  null ) 
			try  { 
				while  ( st ==  null  ||  ! st.hasMoreTokens ( ) )  { 
					line =  r.readLine ( ) ; 
					if  ( line ==  null ) 
						return  null ; 
				} 
				token =  st.nextToken ( ) ; 
			} 
		return  token; 
	} 
 
		token =  null ; 
		return  ans; 
	} 
} 
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRPdXRwdXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOwppbXBvcnQgamF2YS5pby5GaWxlSW5wdXRTdHJlYW07CmltcG9ydCBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjsKaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CmltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOwppbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOwppbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CmltcG9ydCBqYXZhLnV0aWwuU3RyaW5nVG9rZW5pemVyOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCUlucHV0U3RyZWFtIGlucHV0OwoJCU91dHB1dFN0cmVhbSBvdXRwdXQ7CgkJdHJ5IHsKCQkJaW5wdXQgPSBuZXcgRmlsZUlucHV0U3RyZWFtKCJpbnB1dC50eHQiKTsKCQkJb3V0cHV0ID0gbmV3IEZpbGVPdXRwdXRTdHJlYW0oIm91dHB1dC50eHQiKTsKCQl9IGNhdGNoIChGaWxlTm90Rm91bmRFeGNlcHRpb24gZSkgewoJCQlpbnB1dCA9IFN5c3RlbS5pbjsKCQkJb3V0cHV0ID0gU3lzdGVtLm91dDsKCQl9CgkJS2F0dGlvIGlvID0gbmV3IEthdHRpbyhpbnB1dCwgb3V0cHV0KTsKCQkvL2ludCB0PWlvLmdldEludCgpOwoJCS8vZm9yIChpbnQgaT0xOyBpPD10OyBpKyspCgkJKG5ldyBTb2x2ZShpbykpLm1haW4oKTsKCQlpby5jbG9zZSgpOwoKCQlpZiAoaW5wdXQgaW5zdGFuY2VvZiBGaWxlSW5wdXRTdHJlYW0pCgkJCXRyeSB7CgkJCQlpbnB1dC5jbG9zZSgpOwoJCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CgkJCX0KCQlpZiAob3V0cHV0IGluc3RhbmNlb2YgRmlsZU91dHB1dFN0cmVhbSkKCQkJdHJ5IHsKCQkJCW91dHB1dC5jbG9zZSgpOwoJCQl9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CgkJCX0KCX0KfQoKY2xhc3MgUk1RCnsKCWludCBuOwoJaW50W10gYXJyOwoJaW50W10gbCxyOwoJaW50W10gZGF0OwoJaW50W10gcG9zOwoJCglwdWJsaWMgUk1RKGludCBuKQoJewoJCXRoaXMubiA9IG47CgkJYXJyID0gbmV3IGludFtuKzFdOwoJCWRhdCA9IG5ldyBpbnRbNCpuKzFdOwoJCWwgPSBuZXcgaW50WzQqbisxXTsKCQlyID0gbmV3IGludFs0Km4rMV07CgkJcG9zID0gbmV3IGludFtuKzFdOwoJCVJNUUhlbHBlcigxLDEsbik7Cgl9CgkKCXByaXZhdGUgdm9pZCBSTVFIZWxwZXIoaW50IGksaW50IHgsaW50IHkpCgl7CgkJbFtpXT14OwoJCXJbaV09eTsKCQlpZiAoeD09eSkKCQl7CgkJCWRhdFtpXT1hcnJbeF07CgkJCXBvc1t4XT1pOwoJCX0KCQllbHNlCgkJewoJCQlpbnQgbT0oeCt5KS8yOwoJCQlSTVFIZWxwZXIoaSoyLHgsbSk7CgkJCVJNUUhlbHBlcihpKjIrMSxtKzEseSk7CgkJCWRhdFtpXT1NYXRoLm1heChkYXRbaSoyXSwgZGF0W2kqMisxXSk7CgkJfQoJfQoJCglwdWJsaWMgdm9pZCB1cGRhdGUoaW50IHgsaW50IHkpCgl7CgkJYXJyW3hdID0geTsKCQlkYXRbcG9zW3hdXSA9IHk7CgkJdXBkYXRlSGVscGVyKHBvc1t4XS8yKTsKCX0KCQoJcHJpdmF0ZSB2b2lkIHVwZGF0ZUhlbHBlcihpbnQgeCkKCXsKCQlpZiAoeD09MCkgcmV0dXJuOwoJCQoJCWRhdFt4XSA9IE1hdGgubWF4KGRhdFt4KjJdLGRhdFt4KjIrMV0pOwoJCXVwZGF0ZUhlbHBlcih4LzIpOwoJfQoJCglwdWJsaWMgaW50IGdldChpbnQgbCxpbnQgcikKCXsKCQlyZXR1cm4gZ2V0SGVscGVyKDEsbCxyKTsKCX0KCQoJcHJpdmF0ZSBpbnQgZ2V0SGVscGVyKGludCBpLGludCB4LGludCB5KQoJewoJCWludCByZXM7CgkJaWYgKHk8bFtpXSB8fCB4PnJbaV0pIHJlcz0wOwoJCWVsc2UKCQlpZiAoeDw9bFtpXSAmJiByW2ldPD15KSByZXM9ZGF0W2ldOwoJCWVsc2UKCQl7CgkJCXJlcz1nZXRIZWxwZXIoaSoyLHgseSk7CgkJCXJlcz1NYXRoLm1heChyZXMsZ2V0SGVscGVyKGkqMisxLHgseSkpOwoJCX0KCQkKCQlyZXR1cm4gcmVzOwoJfQoKCUBPdmVycmlkZQoJcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKCQlyZXR1cm4gIlJNUSBbbj0iICsgbiArICIsIGFycj0iICsgQXJyYXlzLnRvU3RyaW5nKGFycikgKyAiLCBsPSIgKyBBcnJheXMudG9TdHJpbmcobCkgKyAiLCByPSIKCQkJCSsgQXJyYXlzLnRvU3RyaW5nKHIpICsgIiwgZGF0PSIgKyBBcnJheXMudG9TdHJpbmcoZGF0KSArICIsIHBvcz0iICsgQXJyYXlzLnRvU3RyaW5nKHBvcykgKyAiXSI7Cgl9CgkKCQp9CgpjbGFzcyBTb2x2ZSB7CglLYXR0aW8gaW87CglpbnQgbixtLGs7CglpbnRbXVtdIGE7CglSTVFbXSBkczsKCVNvbHZlKEthdHRpbyBpbykgewoJCXRoaXMuaW8gPSBpbzsKCX0KCQoJYm9vbGVhbiBjaGVjayhpbnQgbCxpbnQgcikKCXsKCQlpZiAocj5uKSByZXR1cm4gZmFsc2U7CgkJaW50IHN1bSA9IDA7CgkJZm9yIChpbnQgaT0xOyBpPD1tOyBpKyspCgkJCXN1bSs9ZHNbaV0uZ2V0KGwsIHIpOwoJCXJldHVybiAoc3VtPD1rKTsKCX0KCgl2b2lkIG1haW4oKSB7CgkJbj1pby5nZXRJbnQoKTsKCQltPWlvLmdldEludCgpOwoJCWs9aW8uZ2V0SW50KCk7CgkJYSA9IG5ldyBpbnRbbisxXVttKzFdOwoJCWZvciAoaW50IGk9MTsgaTw9bjsgaSsrKQoJCQlmb3IgKGludCBqPTE7IGo8PW07IGorKykKCQkJCWFbaV1bal09aW8uZ2V0SW50KCk7CgkJCgkJZHMgPSBuZXcgUk1RW20rMV07CgkJCgkJZm9yIChpbnQgaT0xOyBpPD1tOyBpKyspCgkJewoJCQlkc1tpXSA9IG5ldyBSTVEobik7CgkJCWZvciAoaW50IGo9MTsgajw9bjsgaisrKQoJCQkJZHNbaV0udXBkYXRlKGosIGFbal1baV0pOwoJCX0KCQkKCQkvL2ZvciAoaW50IGk9MTsgaTw9bTsgaSsrKQoJCS8vCWlvLnByaW50bG4oZHNbaV0pOwoJCQoJCWludCByZXMgPSAwOwoJCWludCB2dHJlcyA9IDA7CgkJZm9yIChpbnQgaT0xOyBpPD1uOyBpKyspCgkJewoJCQlpbnQgZGF1ID0gaSwgY3VvaSA9IG47CgkJCWRvCgkJCXsKCQkJCWludCBnaXVhPShkYXUrY3VvaSkvMjsKCQkJCWlmIChjaGVjayhpLGdpdWEpKSBkYXU9Z2l1YSsxOwoJCQkJZWxzZSBjdW9pPWdpdWEtMTsKCQkJfQoJCQl3aGlsZSAoZGF1PD1jdW9pKTsKCQkJCgkJCWlmIChjdW9pLWkrMT5yZXMpCgkJCXsKCQkJCXJlcz1jdW9pLWkrMTsKCQkJCXZ0cmVzPWk7CgkJCX0KCQl9CgkJCgkJZm9yIChpbnQgaT0xOyBpPD1tOyBpKyspCgkJCWlvLnByaW50KGRzW2ldLmdldCh2dHJlcyx2dHJlcytyZXMtMSkrIiAiKTsKCQkKCX0KfQoKY2xhc3MgS2F0dGlvIGV4dGVuZHMgUHJpbnRXcml0ZXIgewoJcHVibGljIEthdHRpbyhJbnB1dFN0cmVhbSBpKSB7CgkJc3VwZXIobmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtKFN5c3RlbS5vdXQpKTsKCQlyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihpKSk7Cgl9CgoJcHVibGljIEthdHRpbyhJbnB1dFN0cmVhbSBpLCBPdXRwdXRTdHJlYW0gbykgewoJCXN1cGVyKG5ldyBCdWZmZXJlZE91dHB1dFN0cmVhbShvKSk7CgkJciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoaSkpOwoJfQoKCXB1YmxpYyBib29sZWFuIGhhc01vcmVUb2tlbnMoKSB7CgkJcmV0dXJuIHBlZWtUb2tlbigpICE9IG51bGw7Cgl9CgoJcHVibGljIGludCBnZXRJbnQoKSB7CgkJcmV0dXJuIEludGVnZXIucGFyc2VJbnQobmV4dFRva2VuKCkpOwoJfQoKCXB1YmxpYyBkb3VibGUgZ2V0RG91YmxlKCkgewoJCXJldHVybiBEb3VibGUucGFyc2VEb3VibGUobmV4dFRva2VuKCkpOwoJfQoKCXB1YmxpYyBsb25nIGdldExvbmcoKSB7CgkJcmV0dXJuIExvbmcucGFyc2VMb25nKG5leHRUb2tlbigpKTsKCX0KCglwdWJsaWMgU3RyaW5nIGdldFdvcmQoKSB7CgkJcmV0dXJuIG5leHRUb2tlbigpOwoJfQoKCXByaXZhdGUgQnVmZmVyZWRSZWFkZXIgcjsKCXByaXZhdGUgU3RyaW5nIGxpbmU7Cglwcml2YXRlIFN0cmluZ1Rva2VuaXplciBzdDsKCXByaXZhdGUgU3RyaW5nIHRva2VuOwoKCXByaXZhdGUgU3RyaW5nIHBlZWtUb2tlbigpIHsKCQlpZiAodG9rZW4gPT0gbnVsbCkKCQkJdHJ5IHsKCQkJCXdoaWxlIChzdCA9PSBudWxsIHx8ICFzdC5oYXNNb3JlVG9rZW5zKCkpIHsKCQkJCQlsaW5lID0gci5yZWFkTGluZSgpOwoJCQkJCWlmIChsaW5lID09IG51bGwpCgkJCQkJCXJldHVybiBudWxsOwoJCQkJCXN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihsaW5lKTsKCQkJCX0KCQkJCXRva2VuID0gc3QubmV4dFRva2VuKCk7CgkJCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKCQkJfQoJCXJldHVybiB0b2tlbjsKCX0KCglwcml2YXRlIFN0cmluZyBuZXh0VG9rZW4oKSB7CgkJU3RyaW5nIGFucyA9IHBlZWtUb2tlbigpOwoJCXRva2VuID0gbnVsbDsKCQlyZXR1cm4gYW5zOwoJfQp9