N = gets.to_i
$chemistory = {}
N.times.each{|y|
  gets.split.take(N).map(&:to_i).each_with_index{|v, x|
    $chemistory[[x,y]] = v
  }
}

$dp={}
def g(u)
  $dp[u] ||= if u == 0
    0
  else
    (a=u.bit_length-1).times.inject(0){|r, b|
      [r, u[b] > 0 ? $chemistory[[a,b]] + g(u ^ (1<<b) ^ (1<<a)) : r].max
    }
  end
end

p g((1<<N)-1)