party

Ana implineste astazi 14 ani si mama ei ii pregateste o petrecere surpriza. Pentru petrecere mama Anei va decora toata casa cu ghirlande de aceeasi lungime formate din margele colorate. Mama cunoaste foarte bine preferintele Anei si stie ca ei nu ii plac decat anumite combinatii de culori, orice alta secventa de culori decat cele preferate de ea creandu-i stari evidente de indispozitie.
De exemplu, daca am avea margele de 4 culori (sa le notam A, B, C, D) combinatiile pe care Ana le prefera ar putea fi
ABB, BCA, BCD, CAB, CDD si DDA. Deci mama Anei ar trebui sa construiasca ghirlande in care sa apara doar aceste combinatii de culori. Daca lungimea ghirlandelor ar fi 5, atunci singurele variante posibile sunt BCABB si BCDDA. Ghirlanda ABBCA (de exemplu) este inacceptabila deoarece contine combinatia BBC.

Cerinta
Date fiind combinatiile acceptabile precum lungimea ghirlandelor, scrieti un program care sa determine cate ghirlande distincte pot fi construite.

Date de intrare
Fisierul de intrare party.in contine pe prima linie trei numere naturale separate prin cate un spatiu n L m, unde n reprezinta numarul de culori, L reprezinta lungimea ghirlandelor, iar m reprezinta numarul de combinatii acceptabile. Cele n culori sunt codificate prin primele n litere mari ale alfabetului. Pe urmatoarea linie sunt scrise cele m combinatii acceptabile, separate prin cate un spatiu. Toate combinatiile acceptabile au aceeasi lungime.

Date de iesire
Fisierul de iesire party.out va contine o singura linie pe care va fi scris un singur numar natural reprezentand numarul de ghirlande ce pot fi construite.

Restrictii
1 <= n <= 26
1 <= L <= 100
1 <= m <= 600
1 <= Lungimea combinatiilor <= 10

Exemplu

party.in party.out party.in party.out

4 5 6
ABB BCA BCD CAB CDD DDA

2 5 4 5
E D C B A
625

Timp maxim de executie/test: 0.4 secunde

prof. Emanuela Cerchez
Liceul de Informatica "Grigore Moisil" Iasi
Contact:emanuela.cerchez@gmail.com