#include<bits/stdc++.h>
using namespace std ;
#define g0 get<0>
#define g1 get<1>
#define g2 get<2>
const int N = 2e4+5 ;
const int M = 105 ;
const int K = 105 ;
int n , m , k , ans ;
tuple<int,int,vector<int>> v[N] ;
vector<int> tempv ;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) ;
cin >> n >> m >> k ;
for(int i=0 ; i<n ; i++){
g1(v[i]) = -i ; g2(v[i]).resize(m) ;
for(int j=0 ; j<m ; j++) cin >> g2(v[i])[j] , g0(v[i])+=g2(v[i])[j] ;
}
sort(v,v+n) ;
for(int i=0 ; i<n ; i++){
int temp = k ;
if(i) temp = 0 ;
for(int j=0 ; j<m ; j++) tempv.push_back(abs(temp-g2(v[i])[j])) ;
}
sort(tempv.begin(),tempv.end()) ;
int diff = g0(v[1]) - g0(v[0]) ;
bool flag = false ;
if(-g1(v[1])<-g1(v[0])) flag = true ;
for(int i=0 ; i<tempv.size() ; i++){
if(diff-tempv[i]>0) ans++ , diff-=tempv[i] ;
else if(flag && diff-tempv[i]==0) ans++ , diff-=tempv[i] ;
else break ;
}
cout << n*m-ans << '\n' ;
return 0 ;
}