एल्गोरिदम और डेटा संरचनाएँ

सबसे लंबी पहुँच योग्य स्ट्रिंग

आपको स्ट्रिंग्स का एक सेट दिया गया है। आपको उस सबसे लंबी स्ट्रिंग को खोजने का काम सौंपा गया है, जिसे खाली स्ट्रिंग से शुरू करके बाएँ ओर अक्षरों को जोड़ते हुए बनाया जा सके, इस शर्त के साथ कि इस प्रक्रिया में बनने वाली प्रत्येक मध्यवर्ती स्ट्रिंग शुरूआती सेट में मौजूद हो। यदि अधिकतम लंबाई वाली कई स्ट्रिंग्स हों, तो उन सभी में से उस स्ट्रिंग को चुनें जिसकी शब्दकोशीय (lexicographical) क्रम में मान सबसे छोटा हो।

Input

पहली पंक्ति में एक पूर्णांक n (1 ≤ n ≤ 100 000) दिया होगा, जो प्रारंभिक सेट में मौजूद स्ट्रिंग्स की संख्या दर्शाता है।

Output

केवल उन्हीं स्ट्रिंग्स का उपयोग करके बनाई गई सबसे लंबी स्ट्रिंग को आउटपुट में दिखाएँ। यदि ऐसी कोई स्ट्रिंग बन ही नहीं पाती, तो एक खाली स्ट्रिंग आउटपुट करें।

उदाहरण

Input

Output

7
pr
profound
f
found
fo
foun
fou

found

3
ab
abc
abcd

5
a
ab
aba
abaz
abad

abad

Constraints

Time limit: 4 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue