#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
const int N(2048*3);
char tree[N];
void build(string s,int t)
{
if(s.size()==1)
{
if(s=="0") tree[t]='B';
if(s=="1") tree[t]='I';
return;
}
int l=s.size();
build(s.substr(0,l/2),2*t);
build(s.substr(l/2,l/2),2*t+1);
if(tree[2*t]==tree[2*t+1])
tree[t]=tree[2*t];
else tree[t]='F';
}
void lastorder(int t)
{
if(tree[t])
{
lastorder(2*t);
lastorder(2*t+1);
cout<<tree[t];
}
return;
}
int main()
{
string s;int n;
cin>>n>>s;
build(s,1);
lastorder(1);
cout<<endl;
return 0;
}
/**************************************************************
Problem: 2246
User: admin
Language: C++
Result: Accepted
Time:51 ms
Memory:2084 kb
****************************************************************/