#include <bits/stdc++.h>
using namespace std;
const int maxn=2e3+3;
int n;
int a,s[maxn];
char b[maxn];
int to(char *b,int nn)
{
for(int i=0; i<nn; i++){
s[i+1]=b[i]-'0';
}
}
int getpost(int *s,int nn)
{
// int root=s[nn];
if(nn/2!=0){
getpost(s,nn/2); //递归左树
getpost(s+nn/2,nn/2); //递归右树
}
bool c0=0,c1=0;
for(int j=1; j<=nn; j++){
int root=s[j];
if(root==0) c0=1;
if(root==1) c1=1;
}
if(c0&&c1) printf("F");
if(c0&&!c1) printf("B");
if(!c0&&c1) printf("I");
}
int main()
{
scanf("%d",&n); //读入数据量的大小
int nn=pow(2,n); //获取字母个数
scanf("%s",b);
to(b,nn);
getpost(s,nn);
return 0;
}