#include <bits/stdc++.h>//復習必須
#include<iostream>
#include<vector>
#include <cmath>
#include <map>
#include <algorithm>
#include <string>
#define rep(i, n) for (int i = 0; i < n; ++i)
using ll = long long;
using namespace std;
#define P pair<int, int>
int main () {
    ll N , M , X ;
    cin >> N >> M >> X ;
    ll c[12] , A[12][M] , y[12];
    for(int j = 0 ; j < M ; j++){
        c[j] = 0 ;
        y[j] = 0 ;
    }
    ll ans = 100000000;
    for(ll i = 0 ; i < 12 ; i++){
        c[i] = 0 ;
        for(ll j = 0 ; j < M ; j++){
            A[i][j] = 0 ;
        }
    }
    for(ll o = 0 ; o < N ; o++){
    cin >> c[o] ;
         for(ll j = 0 ; j < M ; j++ ){
             cin >> A[o][j] ;
            
         }
    }
    ll x = 0  ;

    bool flag = true ;
    for(int i1 = 0 ; i1 < 2 ;i1++){
        for(int i2 = 0 ; i2 < 2 ;i2++){
           for(int i3 = 0 ; i3 < 2 ;i3++){
              for(int i4 = 0 ; i4 < 2 ;i4++){
                 for(int i5 = 0 ; i5 < 2 ;i5++){
                    for(int i6 = 0 ; i6 < 2 ;i6++){
                       for(int i7 = 0 ; i7 < 2 ;i7++){
                           for(int i8 = 0 ; i8 < 2 ;i8++){
                               for(int i9 = 0 ; i9 < 2 ;i9++){
                                  for(int i10 = 0 ; i10 < 2 ;i10++){
                                     for(int i11 = 0 ; i11 < 2 ;i11++){
                                        for(int i12 = 0 ; i12 < 2 ;i12++){
        if(i1 == 0){
            x += c[0] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[0][j] ;
            }
           
        }
        if(i2 == 0){
            x += c[1] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[1][j] ;
            }
           
        }
        if(i3 == 0){
            x += c[2] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[2][j] ;
            }
           
        }
        if(i4 == 0){
            x += c[3] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[3][j] ;
            }
           
        }
        if(i5 == 0){
            x += c[4] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[4][j] ;
            }
           
        }
        if(i6 == 0){
            x += c[5] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[5][j] ;
            }
           
        }
        if(i7 == 0){
            x += c[6] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[6][j] ;
            }
           
        }
        if(i8 == 0){
            x += c[7] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[7][j] ;
            }
           
        }
        if(i9 == 0){
            x += c[8] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[8][j] ;
            }
           
        }
        if(i10 == 0){
            x += c[9] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[9][j] ;
            }
           
        }
        if(i11 == 0){
            x += c[10] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[10][j] ;
            }
           
        }
        if(i12 == 0){
            x += c[11] ;
            for(int j = 0 ; j < M ; j++){
              y[j] += A[11][j] ;
            }
           
        }
        


        for(int j = 0 ; j < M ; j++){
              if(y[j] < X && j < N){
                 
                  flag = false ;
                 
              }
        }
        
        if(flag == true ){
            
            if(ans > x ){
                ans = x ;
               
            }
        }
        flag = true ;
        x = 0 ;
         for(int j = 0 ; j < 12 ; j++){
              y[j] = 0 ;
                 
              
        }

    }   
    }   
    }   
    }   
    }  
    } 
    }   
    }  
    }    
    }   
    }
    }
    if(ans ==  100000000 ){
        cout << -1 << endl;
    }else{

    cout << ans << endl;
    }    
    return 0 ;
}

 


Measured memory_bytes: 3596