#include #define REP(i,n) for(int i=0,i##_len=(n);i>N; vector> X(N,vector(N)); REP(i,N) REP(j,N) cin>>X[i][j]; vector A(N); REP(i, N){ cin >> A[i]; assert(0<=A[i]&&A[i]<=100000); } ll ans=INT_MAX; REP(bit,1<>j&1){ res+=A[j]; } bool flag=true; REP(i,N) if(~bit>>i&1){ rep(j,i+1,N) if(~bit>>j&1){ if(X[i][j]&&X[j][i]) flag=false; } } if(flag) ans=min(ans,res); } cout<