program results;
const
MAXN = 100000;
var
N, i, h : LongInt;
P, R, temp, count : Array[0..MAXN-1] of LongInt;
correttore : char;
begin
{
uncomment the two following lines if you want to read/write from files
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
}
ReadLn(N);
for i:=0 to N-1 do
Read(R[i]);
ReadLn();
for i := 0 to N-1 do begin P[i] := 0; temp[i]:=0; count[i]:=0; end;
temp[0]:=1; count[0]:=1; h:=0;
for i:=1 to N-1 do
begin
if R[i]=R[i-1] then count[h]:=count[h]+1
else begin h:=h+1; count[h]:=count[h]+1; temp[h]:=R[i]; end;
end;
for i:=0 to h-1 do if temp[i]=i+1 then correttore:='F'
else correttore:='J'; writeln (correttore);
for i:=0 to h do write(temp[i],' '); writeln;
for i:=0 to h do write(count[i],' '); writeln;
end.
for i:=0 to N-1 do
Write(P[i], ' ');
WriteLn();
end.
cHJvZ3JhbSByZXN1bHRzOwpjb25zdAogICAgTUFYTiA9IDEwMDAwMDsKCnZhcgogICAgTiwgaSwgaCA6IExvbmdJbnQ7CiAgICBQLCBSLCB0ZW1wLCBjb3VudCA6IEFycmF5WzAuLk1BWE4tMV0gb2YgTG9uZ0ludDsKICAgIGNvcnJldHRvcmUgOiBjaGFyOwpiZWdpbgp7CiAgICB1bmNvbW1lbnQgdGhlIHR3byBmb2xsb3dpbmcgbGluZXMgaWYgeW91IHdhbnQgdG8gcmVhZC93cml0ZSBmcm9tIGZpbGVzCiAgICBhc3NpZ24oaW5wdXQsICAnaW5wdXQudHh0Jyk7ICByZXNldChpbnB1dCk7CiAgICBhc3NpZ24ob3V0cHV0LCAnb3V0cHV0LnR4dCcpOyByZXdyaXRlKG91dHB1dCk7Cn0KCiAgICBSZWFkTG4oTik7CgogICAgZm9yIGk6PTAgdG8gTi0xIGRvCiAgICAgICAgUmVhZChSW2ldKTsKICAgIFJlYWRMbigpOwoKICAgIGZvciBpIDo9IDAgdG8gTi0xIGRvIGJlZ2luIFBbaV0gOj0gMDsgdGVtcFtpXTo9MDsgY291bnRbaV06PTA7IGVuZDsKICAgIHRlbXBbMF06PTE7ICBjb3VudFswXTo9MTsgaDo9MDsKICAgIGZvciBpOj0xIHRvIE4tMSBkbwogICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgaWYgUltpXT1SW2ktMV0gdGhlbiBjb3VudFtoXTo9Y291bnRbaF0rMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYmVnaW4gaDo9aCsxOyBjb3VudFtoXTo9Y291bnRbaF0rMTsgdGVtcFtoXTo9UltpXTsgZW5kOwogICAgICAgICAgICAgICAgICAgIGVuZDsgICAgICAgICAgICAgICAgICAgCiAgICBmb3IgaTo9MCB0byBoLTEgZG8gIGlmIHRlbXBbaV09aSsxIHRoZW4gY29ycmV0dG9yZTo9J0YnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgY29ycmV0dG9yZTo9J0onOyB3cml0ZWxuIChjb3JyZXR0b3JlKTsKICAgIGZvciBpOj0wIHRvIGggIGRvICB3cml0ZSh0ZW1wW2ldLCcgJyk7IHdyaXRlbG47CiAgICBmb3IgaTo9MCB0byBoICBkbyAgd3JpdGUoY291bnRbaV0sJyAnKTsgd3JpdGVsbjsKICAgIGVuZC4gCgogICAgZm9yIGk6PTAgdG8gTi0xIGRvCiAgICAgICAgV3JpdGUoUFtpXSwgJyAnKTsKICAgIFdyaXRlTG4oKTsKCmVuZC4K