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

उत्तराधिकारी ढूँढ़ें

आपको एक सूची में n स्ट्रिंग्स दी गई हैं। इस सूची में हर स्ट्रिंग s के लिए आपका कार्य, उसी सूची से उस उत्तराधिकारी स्ट्रिंग t को खोजना है (इसमें वह स्थिति भी शामिल है जिसमें t, s के बराबर हो)।

इनपुट

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

इसके बाद आने वाली n पंक्तियों में स्ट्रिंग्स दी गई हैं। प्रत्येक स्ट्रिंग में केवल छोटे लैटिन अक्षर होते हैं।

यह आश्वासन दिया जाता है कि इनपुट में कुल अक्षर से अधिक नहीं होंगे।

आउटपुट

इनपुट में दी गई प्रत्येक स्ट्रिंग s के लिए, एक पंक्ति में उसकी उत्तराधिकारी स्ट्रिंग t छापें।

उदाहरण

इनपुट

आउटपुट

5
abaca
aba
abacaba
bacab
dabacaba

aba
aba
aba
bacab
dabacaba

व्याख्या

“abaca” के लिए “aba” उत्तराधिकारी है।

Constraints

Time limit: 5.6 seconds

Memory limit: 512 MB

Output limit: 1 MB