#include <iostream>
#include <cmath>
int n;
char btree[1500], tmp;
int len, arrlen;
void dfs(int i)
{
if (i > arrlen) {
return ;
}
dfs(2 * i);
dfs(2 * i + 1);
std::cout << btree[i];
}
int main(void)
{
std::cin >> n;
arrlen = std::pow(2, n + 1);
len = std::pow(2, n);
for (int i = len; i < 2 * len; i++) {
std::cin >> tmp;
if (tmp == '0') {
btree[i] = 'B';
} else if (tmp == '1') {
btree[i] = 'I';
}
}
for (int i = n - 1; i >= 0; i--) {
len = std::pow(2, i);
for (int j = len; j < 2 * len; j++) {
if (btree[2 * j] == 'I' && btree[2 * j + 1] == 'I') {
btree[j] = 'I';
} else if (btree[2 * j] == 'B' && btree[2 * j + 1] == 'B') {
btree[j] = 'B';
} else {
btree[j] = 'F';
}
}
}
dfs(1);
return 0;
}