#include <bits/stdc++.h>
#pragma warning(disable : 4996)
#pragma comment(linker, "/STACK:336777216")
using namespace std;
int IT_MAX = 1 << 19;
const long long MOD = 998244353;
const int INF = 0x3f3f3f3f;
const long long LL_INF = 0x3f3f3f3f3f3f3f3f;
const double PI = acos(-1);
const double ERR = 1e-10;
int in[105][105];
double dp[10][105];
double dp2[10][105];
int main() {
  int N, i, j, k, l;
  scanf("%d", &N);
  for (i = 0; i < (1 << N); i++)
    for (j = 0; j < (1 << N); j++) scanf("%d", &in[i][j]);
  for (i = 0; i < (1 << N); i++) dp[0][i] = 1;
  for (i = 1; i <= N; i++) {
    int sz = 1 << (i - 1);
    for (j = 0; j < (1 << (N - i)); j++) {
      int st = j * 2 * sz;
      for (k = st; k < st + sz; k++) {
        for (l = st + sz; l < st + sz * 2; l++) {
          dp[i][k] += dp[i - 1][k] * dp[i - 1][l] * in[k][l] / 100;
          dp[i][l] += dp[i - 1][k] * dp[i - 1][l] * in[l][k] / 100;
        }
      }
    }
  }
  for (i = 1; i <= N; i++) {
    int sz = 1 << (i - 1);
    for (j = 0; j < (1 << (N - i)); j++) {
      int st = j * 2 * sz;
      for (k = st; k < st + sz; k++) {
        for (l = st + sz; l < st + sz * 2; l++) {
          dp2[i][k] = max(dp2[i][k], dp2[i - 1][k] + dp2[i - 1][l] +
                                         (1 << (i - 1)) * dp[i][k]);
        }
      }
      for (k = st + sz; k < st + 2 * sz; k++) {
        for (l = st; l < st + sz; l++) {
          dp2[i][k] = max(dp2[i][k], dp2[i - 1][k] + dp2[i - 1][l] +
                                         (1 << (i - 1)) * dp[i][k]);
        }
      }
    }
  }
  double ans = 0;
  for (i = 0; i < (1 << N); i++) ans = max(ans, dp2[N][i]);
  return !printf("%.20lf\n", ans);
}
