#include<stdio.h>
int main() {
int n;
scanf("%d",&n);
int num[25];
for(int i=0; i<n; i++) {
scanf("%d",&num[i]);
}
int connect[25][25];
for(int i=0; i<n-1; i++) {
for(int j=i+1; j<n; j++) {
scanf("%d",&connect[i][j]);
}
}
int sum[25];
int path[25];
for(int i=n-1; i>=0; i--) {
sum[i]=num[i];
for(int j=i+1; j<n; j++) {
if(connect[i][j]&&num[i]+sum[j]>sum[i]) {
sum[i]=num[i]+sum[j];
path[i]=j;
}
}
}
int max=0,pos=0;
for(int i=0; i<n; i++) {
if(sum[i]>max) {
max=sum[i];
pos=i;
}
}
while(1) {
printf("%d ",pos+1);
if(path[pos]==0) {
break;
}
pos=path[pos];
}
printf("\n%d",max);
return 0;
}