import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] d = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { d[i][j] = sc.nextInt(); } } sc.close(); int inf = 1000000000; int n2 = 1 << n; int[][] dp = new int[n2][n]; for (int i = 0; i < n2; i++) { Arrays.fill(dp[i], inf); } dp[1][0] = 0; for (int i = 1; i < n2; i++) { for (int j = 0; j < n; j++) { if ((i >> j & 1) == 1 && dp[i][j] < inf) { int bc = n - Integer.bitCount(i); for (int j2 = 0; j2 < n; j2++) { if ((i >> j2 & 1) == 0) { int ni = i | (1 << j2); dp[ni][j2] = Math.min(dp[ni][j2], dp[i][j] + d[j][j2] * bc); } } } } } int ans = inf; for (int i = 0; i < n; i++) { ans = Math.min(ans, dp[n2 - 1][i]); } System.out.println(ans); } }