#include<bits/stdc++.h>
using namespace std;
char c, trees[30000] = { 0};
string str;
char f(int i,int leftbound,int rightbound) {
if(leftbound!=rightbound)
{
char l = f(2 * i, leftbound, (leftbound + rightbound - 1) / 2);
char r = f(2 * i + 1, (leftbound + rightbound + 1) / 2, rightbound);
if (l == 'B' && r == 'B')
return trees[i] = 'B';
else if (l == 'I' && r == 'I')
return trees[i] = 'I';
else return trees[i] = 'F';
}
else
{
if (str[leftbound] == '1')return trees[i] = 'I';
else return trees[i] = 'B';
}
}
int houxu(int i) {
if (trees[i] == 0)return 0;
else {
houxu(2 * i);
houxu(2 * i + 1);
putchar(trees[i]);
return 0;
}
}
int main(){
int n, rightbound = 1; scanf_s("%d", &n); c = getchar(); getline(cin, str);
for (int i = 1; i <= n; i++)rightbound *= 2;
rightbound -= 1;
f(1, 0, rightbound);
houxu(1);
return 0;
}