#include using namespace std; int main() { int N; cin >> N; vector A(N); vector> B(N, vector(N)); for(int i = 0; i < N; i++) { cin >> A[i]; } for(int i = 0; i < N; i++) { for(int j = 0; j < N; j++) { cin >> B[i][j]; } } long long ans = 0LL; int amsk = 0; for(int msk = 0; msk < (1 << N); msk++) { vector in; for(int i = 0; i < N; i++) { if(msk & (1 << i)) in.push_back(i); } long long cmp = 0LL; for(int i = 0; i < (int) in.size(); i++) { for(int j = 0; j < (int) in.size(); j++) { cmp += B[in[i]][in[j]]; } } cmp /= 2; for(int i = 0; i < (int) in.size(); i++) { cmp += A[in[i]]; } if(cmp > ans) { ans = cmp, amsk = msk; } } cout << ans << "\n"; for(int i = 0; i < N; i++) { if(amsk & (1 << i)) cout << i + 1 << " "; } cout << "\n"; }