#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int num;
typedef struct node{
struct node *lchild;
struct node *rchild;
char data;
}*tree,Tree;
tree T;
char str[2000];
int CiFang(int a,int b)
{
int sum=1,n=1;
for(n=1;n<=b;n++)
{
sum=a*sum;
}
return sum;
}
void TREE(int begin,int end,tree &T)
{
if(begin>end)
return;
if(begin==end)
{
T= (tree)malloc(sizeof(Tree));
if(str[begin]=='1')
T->data='I';
else
T->data='B';
T->lchild=NULL;
T->rchild=NULL;
return ;
}
else
{
int a=0;int b=0;
for(int i=begin;i<=end;i++)
{
if(str[i]=='1')
a++;
if(str[i]=='0')
b++;
if(a>0&&b>0)
break;
}
T= (tree)malloc(sizeof(Tree));
if(a>0&&b>0)
T->data='F';
if(a==0&&b>0)
T->data='B';
if(a>0&&b==0)
T->data='I';
TREE(begin,(begin+end)/2,T->lchild);
TREE((begin+end)/2+1,end,T->rchild);
}
}
void PostOrderTraverse(tree T)
{
if(T==NULL)
return;
if (T)
{
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
printf("%c",T->data);
}
}
int main()
{
scanf("%d",&num);
int len=CiFang(2,num);
scanf("%s",str);
for(int i=len;i>=0;i--)
str[i+1]=str[i];
TREE(1,len,T);
PostOrderTraverse(T);
}