func main() var n: int :: cui@inputInt() var a: []int :: #[n]int for i(0, n - 1) do a[i] :: cui@inputInt() end for var b: [][]int :: #[n, n]int for i(0, n - 1) for j(0, n - 1) do b[i][j] :: cui@inputInt() end for end for var maxScore: int :: -1 var maxI: int :: 0 for i(1, 2 ^ n - 1) var score: int :: 0 var id: bit64 :: i $ bit64 for j(0, n - 1) if(id.and((2 ^ j) $ bit64) <> 0b64) do score :+ a[j] end if end for for j(0, n - 1) if(id.and((2 ^ j) $ bit64) = 0b64) skip j end if for k(j + 1, n - 1) if(id.and((2 ^ k) $ bit64) <> 0b64) do score :+ b[j][k] end if end for end for if(score > maxScore) do maxScore :: score do maxI :: i end if end for var ans: int :: maxScore do cui@print("\{ans}\n") for i(0, n - 1) if((maxI $ bit64).and((2 ^ i) $ bit64) <> 0b64) do cui@print("\{i + 1} ") end if end for end func