import itertools

n, m, x = list(map(int, input().split()))

books=[]

results=[]

for i in range(n):

    books.append(list(map(int, input().split())))

# 全ての本を買ってもXwo満たせないアルゴリズムがあるか検査

for i in range(m):

    skill=0

    for j in books:

        skill+=j[i+1]

    if skill<x:

        print((-1))

        exit()



# 本の組み合わせをためす

index=[]

for i in range(n):

    index.append(i)

patarns=[]

for i in range(1,n+1):

    patarns.append(itertools.combinations(index,i))

    #print(list(a))



# 全パターン検査

for patarn in patarns:

    #flg=True

    # ある本の組み合わせの時検査

    for bk_indexies in patarn:

        # すべてのアルゴリズム

        flg=True

        for arg in range(m):

            point=0

            money=0

            for bk_index in bk_indexies:

                # アルゴリズムargの合計得点

                point+=books[bk_index][arg+1]

                money+=books[bk_index][0]

            #print(arg,money,point)

            if point<x:

                flg=False

        if flg:

            #print(money,list(patarn))

            results.append(money)

#print(results)

print((min(results)))

import itertools 

n, m, x = list(map(int, input().split()))

result=[]

books=[]

tmp=[]

for i in range(n):

    books.append(list(map(int, input().split())))

    tmp.append(i)



# 参考書の選択パターン作成

patterns=[]

for i in range(n):

    patterns.append(itertools.combinations(tmp,i+1))

# 全ての参考書を購入しても条件を満たせないときは-1

for arg in range(m):

    point=0

    for book in books:

        point+=book[arg+1]

    if point<x:

        print((-1))

        exit()



# すべての参考書のパターン

for pattern in patterns:

    # ある参考書のパターン

    for bks in pattern:

        flg=True

        # 各アルゴリズムの時の理解度合計

        for i in range(m):

            # あるアルゴリズムのときの点数とトータルコスト

            cost=0

            point=0

            for bk in bks:

                cost+=books[bk][0]

                point+=books[bk][i+1]

            if point < x:

                # あるアルゴリズムで条件を満たさない

                flg=False

        if flg==True:

            result.append(cost)

print((min(result)))
import itertools

n, m, x = list(map(int, input().split()))
books = []
results = []
for i in range(n):
    books.append(list(map(int, input().split())))
# 全ての本を買ってもXwo満たせないアルゴリズムがあるか検査
for i in range(m):
    skill = 0
    for j in books:
        skill += j[i + 1]
    if skill < x:
        print((-1))
        exit()
# 本の組み合わせをためす
index = []
for i in range(n):
    index.append(i)
patarns = []
for i in range(1, n + 1):
    patarns.append(itertools.combinations(index, i))
    # print(list(a))
# 全パターン検査
for patarn in patarns:
    # flg=True
    # ある本の組み合わせの時検査
    for bk_indexies in patarn:
        # すべてのアルゴリズム
        flg = True
        for arg in range(m):
            point = 0
            money = 0
            for bk_index in bk_indexies:
                # アルゴリズムargの合計得点
                point += books[bk_index][arg + 1]
                money += books[bk_index][0]
            # print(arg,money,point)
            if point < x:
                flg = False
        if flg:
            # print(money,list(patarn))
            results.append(money)
# print(results)
print((min(results)))

import itertools

n, m, x = list(map(int, input().split()))
result = []
books = []
tmp = []
for i in range(n):
    books.append(list(map(int, input().split())))
    tmp.append(i)
# 参考書の選択パターン作成
patterns = []
for i in range(n):
    patterns.append(itertools.combinations(tmp, i + 1))
# 全ての参考書を購入しても条件を満たせないときは-1
for arg in range(m):
    point = 0
    for book in books:
        point += book[arg + 1]
    if point < x:
        print((-1))
        exit()
# すべての参考書のパターン
for pattern in patterns:
    # ある参考書のパターン
    for bks in pattern:
        flg = True
        # 各アルゴリズムの時の理解度合計
        for i in range(m):
            # あるアルゴリズムのときの点数とトータルコスト
            cost = 0
            point = 0
            for bk in bks:
                cost += books[bk][0]
                point += books[bk][i + 1]
            if point < x:
                # あるアルゴリズムで条件を満たさない
                flg = False
        if flg == True:
            result.append(cost)
print((min(result)))

+result = [] -results = [] +tmp = [] -# 全ての本を買ってもXwo満たせないアルゴリズムがあるか検査 -for i in range(m): -    skill = 0 -    for j in books: -        skill += j[i + 1] -    if skill < x: +    tmp.append(i) +# 参考書の選択パターン作成 +patterns = [] +for i in range(n): +    patterns.append(itertools.combinations(tmp, i + 1)) +# 全ての参考書を購入しても条件を満たせないときは-1 +for arg in range(m): +    point = 0 +    for book in books: +        point += book[arg + 1] +    if point < x: -# 本の組み合わせをためす -index = [] -for i in range(n): -    index.append(i) -patarns = [] -for i in range(1, n + 1): -    patarns.append(itertools.combinations(index, i)) -    # print(list(a)) -# 全パターン検査 -for patarn in patarns: -    # flg=True -    # ある本の組み合わせの時検査 -    for bk_indexies in patarn: -        # すべてのアルゴリズム +# すべての参考書のパターン +for pattern in patterns: +    # ある参考書のパターン +    for bks in pattern: -        for arg in range(m): +        # 各アルゴリズムの時の理解度合計 +        for i in range(m): +            # あるアルゴリズムのときの点数とトータルコスト +            cost = 0 -            money = 0 -            for bk_index in bk_indexies: -                # アルゴリズムargの合計得点 -                point += books[bk_index][arg + 1] -                money += books[bk_index][0] -            # print(arg,money,point) +            for bk in bks: +                cost += books[bk][0] +                point += books[bk][i + 1] +                # あるアルゴリズムで条件を満たさない -        if flg: -            # print(money,list(patarn)) -            results.append(money) -# print(results) -print((min(results))) +        if flg == True: +            result.append(cost) +print((min(result)))