#include <bits/stdc++.h>
using namespace std;
const int MAXN=2*(1<<10)+5;
char tree[MAXN];
int n;
string s;
void Count(int l,int r)//统计树
{
for(int i=l;i<=r;i+=2){
if(tree[i]=='F'||tree[i+1]=='F')
tree[i/2]='F';
else{
if(tree[i]=='B'&&tree[i+1]=='B')
tree[i/2]='B';
else if(tree[i]=='I'&&tree[i+1]=='I')
tree[i/2]='I';
else if((tree[i]=='I'&&tree[i+1]=='B')||(tree[i]=='B'&&tree[i+1]=='I'))
tree[i/2]='F';
}
}
if(l==1)
return ;
Count(l/2,r/2+1);
}
void print(int k)//输出树
{
if(k>=2*n)
return ;
print(k*2);
print(k*2+1);
cout<<tree[k];
}
int main()
{
cin>>n;
n=1<<n;
cin>>s;
int len=s.size();
for(int i=n;i<=2*n-1;i++){//初始化叶节点
if(s[i-n]=='0')
tree[i]='B';
else tree[i]='I';
}
Count(n,2*n-1);
print(1);
return 0;
}