#include <bits/stdc++.h>
using namespace std;
int n;
double w[507][507], e[507][507], a[507][507];
void dfs(int sco, int l, int r, int p) {
  if (l == r) {
    w[p][l] = 1;
    e[p][l] = sco;
    return;
  }
  int mid = (l + r) >> 1;
  dfs(sco / 2, l, mid, p << 1);
  dfs(sco / 2, mid + 1, r, (p << 1) + 1);
  for (int i = l; i <= mid; i++)
    for (int j = mid + 1; j <= r; j++) {
      w[p][i] += w[p << 1][i] * w[(p << 1) + 1][j] * a[i][j];
      w[p][j] += w[p << 1][i] * w[(p << 1) + 1][j] * a[j][i];
    }
  for (int i = l; i <= mid; i++)
    for (int j = mid + 1; j <= r; j++) {
      e[p][i] = max(e[p][i], w[p][i] * sco + e[p << 1][i] + e[(p << 1) + 1][j]);
      e[p][j] = max(e[p][j], w[p][j] * sco + e[p << 1][i] + e[(p << 1) + 1][j]);
    }
}
int main() {
  scanf("%d", &n);
  n = 1 << n;
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) scanf("%lf", &a[i][j]), a[i][j] *= 0.01;
  dfs(n / 2, 1, n, 1);
  double ans = -1;
  for (int i = 1; i <= n; i++) ans = max(ans, e[1][i]);
  printf("%.10f", ans);
}
