#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);}) #define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define rep(v,e) for(typeof(e) v=0;v<e;++v) #define HASH_BITS 16 #define HASH_MASK ((1<<HASH_BITS)-1) unsigned hash[1<<HASH_BITS]; int hash_add(unsigned x){ int h=x&HASH_MASK; while(1){ if(hash[h]==0){ hash[h]=x; return h; } if(hash[h]==x){ return h; } h=h+1&HASH_MASK; } } int hn[1<<HASH_BITS]; char ss[1000][11]; unsigned ch[26]; void f0(){ unsigned v=1; rep(i,26){ ch[i]=v; v*=257; } } void f1(){ rd_init(); int n=rd(); rep(i,n){ char*s=ss[i]; int j=0; unsigned v=0; for(int c;c=*rp++,c>='a';){ s[j++]=c; v+=ch[c-'a']; } rep(c,26){ int h=hash_add(v+ch[c]); hn[h]=hn[h]?-1:i+1; } } } void f2(){ rep(h,1<<HASH_BITS){ if(hn[h]>0){ char wbuf[16]; memcpy(wbuf,ss[hn[h]-1],11); unsigned v=hash[h]; int j=0; for(int c;c=wbuf[j++],c>='a';){ v-=ch[c-'a']; } rep(c,26){ if(ch[c]==v){ wbuf[j-1]=c+'a'; write(1,wbuf,j); _exit(0); } } _exit(1); } } write(1,"-1",2); _exit(0); } int main(){ f0(); f1(); f2(); }