program retezce; var pocet,i,j,k,l,m,kolikaty:integer; pole:array[1..4000] of string[200]; s:string; podret : string; dal,hotovo :boolean; function najdi (sco,svcem:string):boolean; var pozice,i : integer; begin pozice := 1; for I := 1 to length(svcem) do begin if (svcem[i]=sco[pozice]) then begin inc(pozice); end else begin pozice := 1; if svcem[i] = sco[1] then inc(pozice); end; if pozice = (length(sco)+1) then begin najdi := true; exit; end; end; najdi := false; end; begin{main begin} repeat readln(pocet); if pocet = 0 then halt; for j:=1 to pocet do readln (pole[j]); dal := false; for i := length(pole[1]) downto 1 do begin if dal then break; hotovo := false; k := 1; while (k+i-1) <= length(pole[1]) do begin for j := 1 to i do begin podret := podret + pole[1][k+j-1]; end; kolikaty := 2; while najdi(podret,pole[kolikaty]) do inc(kolikaty); if kolikaty = pocet +1 then begin writeln (podret); dal := true; hotovo := true; break; end; podret := ''; k := k+1; end; end; if not hotovo then writeln ('IDENTITY LOST'); until pocet = 0; end.{main end}