#include<bits/stdc++.h>
using namespace std;
int n,a,y,x;
int d[30],w[30],id[30],next[30];
bool linker[30][30];
int count(int u)
{
if(d[u])
return d[u];
int v=0,k=-1;
for(int i=1;i<=n;i++)
if(linker[u][i])
{
if(d[i]==0)
d[i]=count(i);
if(d[i]>v)
v=d[i],k=i;
}
next[u]=k;
return v+w[u];
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>w[i];
id[i]=0;
next[i]=-1;
}
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
cin>>a;
if(a)
{
linker[i][j]=true;
id[j]++;
}
}
for(int i=1;i<=n;i++)
if(id[i]==0)
{
d[i]=count(i);
if(d[i]>y)
y=d[i],x=i;
}
while(x!=-1)
{
cout<<x<<' ';
x=next[x];
}
cout<<endl<<y;
return 0;
}