#include<bits/stdc++.h>
using namespace std;
int dp[25];
int a[25];
int mp[25][25];
int main(){
int n;
cin>>n;
for(int i = 1;i <= n;i++){
cin>>a[i];
dp[i] = a[i];
}
for(int i = 1;i <= n;i++){
for(int j = i + 1;j <= n;j++){
cin>>mp[i][j];
}
}
for(int i = 2;i <= n;i++){
for(int j = 1;j < i;j++){
if(mp[j][i] && dp[j] + a[i] > dp[i]){
dp[i] = max(dp[i],dp[j] + a[i]);
}
}
}
int ans = 0;
for(int i = 1;i <= n;i++){
ans = max(ans,dp[i]);
}
cout<<ans;
return 0;
}