n = int(input()) a = list(map(int, input().split())) b = [list(map(int, input().split())) for _ in range(n)] max_score = -float('inf') best_mask = 0 for mask in range(1, 1 << n): current_a = 0 current_b = 0 # Calculate sum of A's for i in range(n): if mask & (1 << i): current_a += a[i] # Calculate sum of B's for i in range(n): if mask & (1 << i): for j in range(i + 1, n): if mask & (1 << j): current_b += b[i][j] total = current_a + current_b if total > max_score: max_score = total best_mask = mask elif total == max_score and bin(mask).count('1') < bin(best_mask).count('1'): best_mask = mask # Prepare the result result = [] for i in range(n): if best_mask & (1 << i): result.append(i + 1) result.sort() print(max_score) print(' '.join(map(str, result)))