#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[4000005];
int solve(int a,int b,int c)
{
int f[4] = {0};
f[a]++,f[b]++,f[c]++;
if (f[0] > f[1]) return 0;
else return 1;
}
int qsort1(int a,int b,int c)
{
vector<int> d;
d.push_back(a),d.push_back(b),d.push_back(c);
sort(d.begin(),d.end());
return d[0] + d[1];
}
int now=0;
pair<int,int> dfs(int l,int r)
{
now++;
if (l == r) return make_pair(a[l],1);
else
{
int l1 = l,r1 = l1 + (r - l + 1) / 3 - 1;
int l2 = r1 + 1,r2 = r1 + ((r - l + 1) / 3);
int l3 = r2 + 1,r3 = r;
pair<int,int> a = dfs(l1,r1);
pair<int,int> b = dfs(l2,r2);
pair<int,int> c = dfs(l3,r3);
int ans1 = solve(a.first,b.first,c.first);
int ans2;
if (a.first == b.first && b.first == c.first) ans2 = qsort1(a.second,b.second,c.second);
else ans2 = min({a.second,b.second,c.second});
return make_pair(ans1,ans2);
}
}
signed main()
{
int n;
cin >> n;
int len = 1;
for (int i = 1;i <= n;i++) len *= 3;
for (int i = 1;i <= len;i++)
{
char c;
cin >> c;
a[i] = c - 48;
}
cout << dfs(1,len).second;
return 0;
}