#include <bits/stdc++.h>
using namespace std;
int n;
string s;
struct Po{
int left;
int right;
char c;
Po(){
left=right=-1;
c=0;
}
}a[10000];
char pan(string s){
int suma=0,sumb=0;
for(int i=0;i<s.size();i++){
if(s[i]=='0')suma++;
else sumb++;
}
if(suma==0)return 'I';
if(sumb==0)return 'B';
return 'F';
}
void gz(string s,int i,bool b){
if(s.size()<=1){
if(b)a[i].left=2*i,a[2*i].c=pan(s);
else a[i].right=2*i+1,a[2*i+1].c=pan(s);
}
string a2=s.substr(0,(s.size()>>1)-1),b2=s.substr((s.size()>>1)+1);
a[i].left=2*i,a[i*2].c=pan(a2);
a[i].right=2*i+1,a[i*2+1].c=pan(b2);
gz(a2,2*i,true);
gz(b2,2*i+1,false);
}
void print(int i){
if(a[i].left==-1 && a[i].right==-1){
cout << a[i].c;
return;
}
if(a[i].left==-1){
print(a[i].right);
cout << a[i].c;
return;
}
if(a[i].right==-1){
print(a[i].left);
cout << a[i].c;
return;
}
print(a[i].left);
print(a[i].right);
cout << a[i].c;
}
int main(){
cin >> n >> s;
string a2=s.substr(0,(s.size()>>1)-1),b=s.substr((s.size()>>1)+1);
a[1].c=pan(s);
gz(a2,2*1,true);
gz(b,2*1+1,false);
print(1);
return 0;
}