program identity;

Var 
	Pole : Array [1..4000] Of String;
	N : Integer;
	Vysl : Integer;
	Pocet : Integer;
	PoleVysl : Array [1..4000] Of String;
 
 Function GetFirstStringIndex(StartCharIndex:Integer):Integer;
 var I : Integer;
     MinChar : Byte;
     Nerovnajise : Boolean;
 begin
 Nerovnajise:=False;
 GetFirstStringIndex:=1;
 MinChar:=Ord(PoleVysl[1][StartCharIndex]);
 For I:=1 To Pocet Do
	begin
	If Ord(PoleVysl[I][StartCharIndex]) = MinChar Then
		Continue;
	If Ord(PoleVysl[I][StartCharIndex]) < MinChar Then
		begin
		Minchar:=Ord(PoleVysl[I][StartCharIndex]);
		GetFirstStringIndex:=I;
		NerovnajiSe:=True;
		end
	Else NerovnajiSe:=True;
	end;
 If Not NerovnajiSe Then
	GetFirstStringIndex:=0;
 end;

 Procedure Porovnej(S:String);
 Var 
	I, J, K : Integer;
	Pom : String;
	JeVeVsech : Boolean;
 begin
 For J:=Length(S) Downto 1 Do
	begin
	JeVeVsech:=True;
	Pom:= Copy(S, 1, J);
 	For I:=1 To N Do
		begin
		If Pos(Pom,Pole[I]) = 0 Then
			begin
			JeVeVsech:=False;
			Break;
			end; 
		end;
	If (JeVeVsech) And (Vysl < Length(Pom)) Then
		begin
		Pocet:=1;
		PoleVysl[1]:=Pom;
		Vysl:=Length(Pom);
		end
	Else If (JeVeVsech) And (Vysl = Length(Pom)) Then
		begin
		K:=1;
		While False = False Do
			begin
			If K > Length(Pom) Then
				begin
				PoleVysl[1]:=Pom;
				Break;
				end;
			If K > Length(PoleVysl[1]) Then
				Break;
			If Ord(Pom[K]) < Ord(PoleVysl[1][K]) Then
				begin
				PoleVysl[1]:=Pom;
				Break;
				end
			Else If Ord(Pom[K]) > Ord(PoleVysl[1][K]) Then
				Break; 
			Inc(K);
			end;
		end;
	end;
 end;

Var 	I, J : Integer;
	Pom : String;
	MinLengthIndex : Integer;
	MinLength : Integer;
	FirstIndex : Integer;
begin
Repeat
Pocet:=0;
Vysl:=0;
MinLength:=255;
Readln(N);
If N = 0 Then
	Break;
For I:=1 To N Do
	Readln(Pole[I]);
For I:=1 To N Do
	begin
	If Length(Pole[I]) < MinLength Then
 		begin
		MinLengthIndex:=I;
		MinLength:=Length(Pole[I]);
		end;
	end;
Pom:=Pole[MinLengthIndex];
While Pom <> '' Do
	begin
	Porovnej(Pom);
	Delete(Pom,1,1);
	end;
If Pocet = 0 Then
	Writeln('IDENTITY LOST')
Else If Pocet = 1 Then
	Writeln(PoleVysl[1])
Else	begin
	FirstIndex:=0;
	I:=1;
	While FirstIndex = 0 Do
		begin
		FirstIndex:=GetFirstStringIndex(I);
		Inc(I);
		If (I > Length(PoleVysl[1])) Then
			begin
			FirstIndex:=1;
			Break;
			end;
		end;
	Writeln(PoleVysl[FirstIndex]);
	end;
Until N = 0;
end.
