#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() typedef long long ll; #include <bits/stdc++.h> using namespace std; const ll INF=2e18; int main(){ int n; cin>>n; vector<ll> A(n); vector<vector<ll>> B(n,vector<ll> (n)); rep(i,n) cin>>A[i]; rep(i,n){ rep(j,n) cin>>B[i][j]; } ll ans=-INF; ll ans2; for(int bit=1;bit<(1<<n);bit++){ ll tmp=0; for(int i=0;i<n;i++){ if(bit&(1<<i)) tmp+=A[i]; } for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(((bit&(1<<i))>0) && ((bit&(1<<j))>0)){ tmp+=B[i][j]; } } } if(ans<tmp){ ans=tmp; ans2=bit; } } cout<<ans<<endl; bool b=false; rep(i,n){ if(b) cout<<" "; if(ans2&(1<<i)){ cout<<i+1; b=true; } } cout<<endl; return 0; }