#include<bits/stdc++.h>
using namespace std;
long long a[21],b[21][21],n,ans=0,c[21],c1[21],ans1=0,k,k1;
void dfs(int x){
k1++;
c1[k1]=x;
ans1+=a[x];
if(ans1>ans){
ans=ans1;
k=k1;
for(int i=1;i<=k;i++) c[i]=c1[i];
}
for(int i=x+1;i<=n;i++) if(b[x][i]==1) dfs(i);
c1[k1]=0;
k1--;
ans1-=a[x];
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) for(int j=i+1;j<=n;j++) cin>>b[i][j];
for(int i=1;i<=n;i++) dfs(i);
for(int i=1;i<=k;i++) cout<<c[i]<<" ";
cout<<endl<<ans;
return 0;
}