#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=20,inf=0x3F3F3F3F;
int n,m,X,A[maxn][maxn],C[maxn],ans=inf,tep[maxn];
int main()
{
	scanf("%d%d%d",&n,&m,&X);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&C[i]);
		for(int j=1;j<=m;j++)
			scanf("%d",&A[i][j]);
	}
	for(int s=1;s<(1<<n);s++)
	{
		int sum=0;memset(tep,0,sizeof(tep));
		for(int i=1;i<=n;i++)
		{
			if(s&(1<<(i-1)))
			{
				sum+=C[i];
				for(int j=1;j<=m;j++) tep[j]+=A[i][j];
			}
		}
		bool suc=true;
		for(int i=1;i<=m;i++) if(tep[i]<X) suc=false;
		if(suc&&sum<ans) ans=sum;
	}
	if(ans==inf) ans=-1;
	printf("%d\n",ans);
	return 0;
}