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;
write(temp[h]);
end;
writeln; writeln(h);
for i:=0 to h do if temp[i]=i+1 then correttore:='F'
else correttore:='J';
writeln(correttore);
h:=0;
if correttore='J' then
begin
for i:=0 to N-1 do
begin
if R[i]=1 then P[i]:=R[i]
else
begin
if R[i]=temp[h] then P[i]:=h+1
else
begin
h:=h+1;
if R[i]=temp[h] then P[i]:=h+1;
end;
end;
end;
end
else if correttore='F' then
begin
for i:=0 to N-1 do
begin
if R[i]=1 then P[i]:=R[i]
else
begin
if R[i]=temp[h] then P[i]:=P[i-1]
else
begin
h:=h+1;
if R[i]=temp[h] then P[i]:=i+1;
end;
end;
end;
end
else
for i:=0 to N-1 do P[i]:=1;
for i:=0 to N-1 do Write(P[i], ' ');
WriteLn();
end.
cHJvZ3JhbSByZXN1bHRzOwpjb25zdAogICAgTUFYTiA9IDEwMDAwMDsKCnZhcgogICAgTiwgaSwgaCA6IExvbmdJbnQ7CiAgICBQLCBSLCB0ZW1wLCBjb3VudCA6IEFycmF5WzAuLk1BWE4tMV0gb2YgTG9uZ0ludDsKICAgIGNvcnJldHRvcmUgOiBjaGFyOwpiZWdpbgp7CiAgICB1bmNvbW1lbnQgdGhlIHR3byBmb2xsb3dpbmcgbGluZXMgaWYgeW91IHdhbnQgdG8gcmVhZC93cml0ZSBmcm9tIGZpbGVzCiAgICBhc3NpZ24oaW5wdXQsICAnaW5wdXQudHh0Jyk7ICByZXNldChpbnB1dCk7CiAgICBhc3NpZ24ob3V0cHV0LCAnb3V0cHV0LnR4dCcpOyByZXdyaXRlKG91dHB1dCk7Cn0KCiAgICBSZWFkTG4oTik7CgogICAgZm9yIGk6PTAgdG8gTi0xIGRvCiAgICAgICAgUmVhZChSW2ldKTsKICAgIFJlYWRMbigpOwoKICAgIGZvciBpIDo9IDAgdG8gTi0xIGRvIGJlZ2luIFBbaV0gOj0gMDsgdGVtcFtpXTo9MDsgY291bnRbaV06PTA7IGVuZDsKICAgIHRlbXBbMF06PTE7ICBjb3VudFswXTo9MTsgaDo9MDsKICAgIGZvciBpOj0xIHRvIE4tMSBkbwogICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgaWYgUltpXT1SW2ktMV0gdGhlbiBjb3VudFtoXTo9Y291bnRbaF0rMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYmVnaW4gaDo9aCsxOyBjb3VudFtoXTo9Y291bnRbaF0rMTsgdGVtcFtoXTo9UltpXTsgZW5kOwogICAgICAgICAgICAgICAgICAgIHdyaXRlKHRlbXBbaF0pOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGVuZDsgICAgICAgICAgICAgICAgICAgCiAgICAgd3JpdGVsbjsgd3JpdGVsbihoKTsKICAgIGZvciBpOj0wIHRvIGggZG8gIGlmIHRlbXBbaV09aSsxIHRoZW4gY29ycmV0dG9yZTo9J0YnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgY29ycmV0dG9yZTo9J0onOwogICAgd3JpdGVsbihjb3JyZXR0b3JlKTsKICAgIGg6PTA7CiAgICBpZiBjb3JyZXR0b3JlPSdKJyB0aGVuIAogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpOj0wIHRvIE4tMSBkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFJbaV09MSB0aGVuIFBbaV06PVJbaV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFJbaV09dGVtcFtoXSB0aGVuIFBbaV06PWgrMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6PWgrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFJbaV09dGVtcFtoXSB0aGVuIFBbaV06PWgrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGVuZCAgCiAgICAgZWxzZSBpZiBjb3JyZXR0b3JlPSdGJyB0aGVuIAogICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpOj0wIHRvIE4tMSBkbwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFJbaV09MSB0aGVuIFBbaV06PVJbaV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFJbaV09dGVtcFtoXSB0aGVuIFBbaV06PVBbaS0xXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6PWgrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIFJbaV09dGVtcFtoXSB0aGVuIFBbaV06PWkrMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGVuZAogICAgIGVsc2UgCiAgICAgICAgZm9yIGk6PTAgdG8gTi0xIGRvIFBbaV06PTE7ICAgICAgICAgICAgICAgIAogICAgIAogICAgZm9yIGk6PTAgdG8gTi0xIGRvIFdyaXRlKFBbaV0sICcgJyk7CiAgICBXcml0ZUxuKCk7ICAgICAgICAgICAgICAgICAgIAplbmQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg