#include int main() { int n; scanf("%d", &n); int i, j, k; long long int a[22]; for (i = 0; i < n; i++) scanf("%lld", &a[i]); long long int b[22][22]; for (i = 0; i < n; i++) for (j = 0; j < n; j++) scanf("%lld", &b[i][j]); long long int ans_w = a[0], ans_k = 1; long long int max = 1, w; for (i = 0; i < n; i++) max *= 2; int v[22]; for (k = 1; k < max; k++) { for (i = 0, j = k; i < n; i++, j /= 2) v[i] = j % 2; w = 0; for (i = 0; i < n; i++) if (v[i] > 0) w += a[i]; for (i = 0; i < n; i++) for (j = i; j < n; j++) if (v[i] * v[j] > 0) w += b[i][j]; if (w > ans_w) { ans_w = w; ans_k = k; } } printf("%lld\n", ans_w); for (i = 0; i < n; i++, ans_k /= 2) { if (ans_k % 2 > 0) { printf("%d", i + 1); if (ans_k > 1) printf(" "); else printf("\n"); } } return 0; }