Var
m, n, i : longint;
ch : char;
tree : array [0..1000] of char;
treel, treer : array [0..1000] of integer;
s : string;
k : integer;
{============procedure====================}
Procedure print(k : integer);
Begin
If k = 0 then exit;
print(treel[k]);
print(treer[k]);
write(tree[k]);
End;
{=========================mian=====================}
Begin
readln(n);
If n = 0 then
Begin
read(ch);
If ch = 1 then writeln(I)
else writeln(B);
exit;
End;
m := 1;
For i := 1 to n do m := m + m;
For i := m to 2*m-1 do
Begin
read(ch);
If ch = 1 then tree[i] := I
else tree[i] := B;
treel[i] := 0;
treer[i] := 0;
End;
For i := m-1 downto 1 do
Begin
treel[i] := i + i;
treer[i] := i + i + 1;
s := tree[i+i] + tree[i+i+1];
If (s[1] = F) or (s[2] = F) then tree[i] := F
else Begin
If s[1] = s[2] then
If s[1] = I then tree[i] := I
else tree[i] := B;
If s[1] <> s[2] then tree[i] := F;
End;
End;
print(1);
End.