Zalagaonica

아직 제출이 없습니다시간 제한3초메모리 제한1024 MB

문제

Dođe Stjepan jednog utorka kod Ricka u Pawn Stars zalagaonicu držeći papirić u ruci na kojem piše jedna riječ i pita Ricka koliko kuna može dobiti za taj papirić. Kaže mu Rick: “Za taj papirić, kao i za svaki drugi koji doneseš, možeš dobiti C[x] kuna gdje je x broj različitih slova napisanih na papiriću.”

Nakon što je to čuo, Stjepan brzo shvati da može zaraditi mnogo novca ako svojim škarama, koje uvijek nosi sa sobom, razreže papirić na više dijelova i onda proda svaki dio posebno. Jedino što je važno poslije rezanja je da svaki papirić sadržava barem jedno slovo i da svaki papirić sadržava uzastopna slova riječi koja je bila napisana na početku. Od svog tog ushićenja, on nije sposoban izračunati koliko najviše novaca može zaraditi pa moli tebe da napišeš program koji to ispisuje.

입력

U prvom je retku prirodan broj NN (1N261 ≤ N ≤ 26), broj različitih slova napisanih na papiriću.

U drugom retku je niz CC koji sadrži NN prirodnih brojeva manjih od 10910^9.

U trećem retku je riječ SS (1S1061 ≤ |S| ≤ 10^6) koja je na početku napisana na papiriću. Riječ će sadržavati samo mala slova engleske abecede.

출력

U prvi redak ispiši prirodan broj, odgovor na pitanje iz teksta zadatka.

힌트

Opis prvog probnog primjera: Optimalno je razrezati papirić na pola riječi (abc|bca). Tako se dobiju dva papirića koja će Stjepan odnijeti Ricku.

Opis drugog probnog primjera: Optimalno je razrezati papirić na (a|a|ab|b|ba|a|ab|b|ba|a|a)

Opis trećeg probnog primjera: Optimalno je razrezati papirić na (ab|ab|ab|ab|a).