#include<bits/stdc++.h>
using namespace std;
int main(){
int n,w[25],f[25]={0},c[25]={0},www;
bool a[25][25];
cin>>n;
for(int i=1;i<=n;i++){
cin>>w[i];
}
for(int i=1;i<n;i++){
for(int j=i;j<n;j++){
cin>>www;
if(www==1){
a[i][j]=true;
}else{
a[i][j]=false;
}
}
}
f[n]=w[n];
int p1,p2;
for(int i=n-1;i>=1;i--){
p1=0;p2=0;
for(int j=i+1;j<=n;j++){
if(a[i][j]&&f[j]>p1){
p1=f[j];p2=j;
}
f[i]=w[i]+p1;
c[i]=p2;
}
}
int k=1;
for(int i=2;i<=n;i++){
if(f[i]>f[k]){
k=i;
}
}
int max=f[k];
cout<<k;
k=c[k];
while(k!=0){
cout<<" "<<k;
k=c[k];
}
cout<<endl<<max;
return 0;
}