#include using namespace std; typedef long long ll; ll i,j,p,q,n,m,k,P,a[506][506],b[506][506],r[506],c[506],d,f[506],min1; struct Ans { ll S,C,br; ///S - suma ///C - cena } t; struct Pic { char t; ll n,k; }; vector v; clock_t T; void read() { cin>>n>>m>>P; for(i=1; i<=n; i++) { cin>>r[i]; } for(i=1; i<=m; i++) { cin>>c[i]; } for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cin>>a[i][j]; } } for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { cin>>b[i][j]; p+=a[i][j]*b[i][j]; } } t.S=p;t.C=0; } void print() { cout<=4800)break; p=0; } if(q!=0) { //cout<=4800)break; if(t.br==P)break; t.S+=min1; } if(t.br==P) { print(); return ; } for(i=1;i<=m;i++) { p=0;q=0; for(j=1;j<=n;j++) { f[j]=a[j][i]; p+=a[j][i]*b[j][i]; } min1=p; t.S-=p;p=0; for(k=1;k=4800)break; p=0; } if(q!=0) { //cout<=4800)break; if(t.br==P)break; t.S+=min1; } print(); } int main() { freopen("movethematrix.in","r",stdin); freopen("movethematrix.out","w",stdout); ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); read(); solve(); return 0; } /** 3 4 2 10 3 7 2 1 4 4 1 2 3 4 7 12 8 5 0 100 9 6 2 5 3 4 1 1 1 0 9 8 7 6 */