#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
****************************************************************/