n, m = read_line.split.map(&.to_i) a = (1..n).map { read_line.split.map(&.to_i) } puts [false, true].repeated_permutations(n + 2).min_of { |flag| cnt = flag.count(true) b = [0] * n sum = 0 (0...n).each { |i| (0...n).each { |j| if flag[i] || (flag[-2] && i == j) || (flag[-1] && i == (n - 1 - j)) sum += a[i][j] else b[j] += a[i][j] end } } cnt + n < m ? 10**9 : sum + b.sort[0, {m - cnt, 0}.max].sum }