#include<vector>
#include<iostream>
#include<string>
#include<set>
#include<sstream>
#include<map>
using namespace std;
int main()
{
  int N;
  
  while (cin>>N,N)
  { getchar();
    vector<string> v;string s;
    int maxi=-1;
    for (int k=0;k<N;k++)
    {
      cin>>s;
      v.push_back(s);
      maxi>?=(int)s.size();
    }
    int zac=0,kon=maxi;
    string vys,last;
    while (zac+1!=kon)
    {
      int stred=(zac+kon)/2;
      map<string,int> mapa;
      int maxi=-1;
      for (int i=0;i<v.size();i++)
      {
        set<string> mnoz;
        for (int j=0;j+stred<=int(v[i].size());j++)
          mnoz.insert(v[i].substr(j,stred));
        for (set<string>::iterator it=mnoz.begin();it!=mnoz.end();it++)
        {   
          int *p=&mapa[*it];     
          if (maxi<(*p)+1)
            maxi=(*p)+1,
            vys=*it;
          *p+=1;
        }          
      }
     
      if (maxi==N)
        zac=stred,last=vys;
      else
        kon=stred;        
    }  
    if (last.size()==0)
      cout<<"IDENTITY LOST"<<endl;
    else  
      cout<<last<<endl;
  }
  

  return 0;
}
