Gülməli Dil
Tanınmış bir oyun var ki, burada verilən bir sözdən istifadə edərək mümkün qədər çox yeni söz yaratmalısınız. Əgər hərf orijinal sözdə bir neçə dəfə təkrarlanırsa, yeni sözlərdə də o qədər istifadə edə bilərsiniz. Orijinal sözdəki hərflərin sırası önəmli deyil. Məsələn, CONTEST sözü verildikdə, NOTE, NET, ON, TEST, SET və s. kimi sözlər yaradıla bilər.
İndi siz yeni bir lüğət yaratmaqla məsulsunuz. Vəzifəniz n yeni sözü lüğətə əlavə etməkdir. Əvvəlcədən m söz Wi (1 <= i <= m) ilə oyun oynayacağınızı bilirsiniz və bu m sözlərdən mümkün qədər çox söz yaratmaq üçün hansı yeni n sözləri lüğətə əlavə edəcəyinizi müəyyən etməlisiniz.
Daha rəsmi olaraq, elə bir boş olmayan sözlər dəsti S tapın ki, |S| = n, hər hansı i üçün W_i S və ∑_1_{≤}_i_{≤}_m |S_i| maksimal olsun, burada Si S verilən Wi sözündən istifadə edərək yaradıla bilən sözlər dəstidir.
Giriş verilənləri
Giriş faylının ilk sətri iki tam ədəd n (1 <= n <= 100) – lüğətə əlavə edə biləcəyiniz yeni sözlərin sayı və m (1 <= m <= 1 000) – oyun oynayacağınız sözlərin sayı. Növbəti m sətir orijinal sözləri ehtiva edir. Hər bir söz ən çox 100 böyük hərfdən (A-dan Z-yə) ibarətdir.
Çıxış verilənləri
Çıxış faylına n sətir yazın, hər sətirdə yeni bir söz olsun.