De când K.L 2.0 s-a îndrăgostit, vede toate lucrurile mai frumos. Astfel defineşte o secvenţă de litere mici ale alfabetului englez ca fiind frumoasă dacă are codurile ASCII ale caracterelor într-o progresie aritmetică cu raţia nenulă. Apoi K.L 2.0 defineşte un şir de litere mici ale alfabetului englez, care nu conţine două caractere alăturate identice, ca fiind -frumos dacă acesta se poate împărţi în subsecvenţe frumoase, dar nu se poate împărţi în subsecvenţe frumoase.
Cerință
Determinaţi câte şiruri de lungime sunt -frumoase. Fiindcă acest număr este destul de mare, voi trebuie să îl calculaţi modulo .
Date de intrare
Fişierul de intrare frumos.in
conţine pe prima linie numerele naturale nenule şi , separate printr-un spaţiu, cu semnificaţia din enunţ.
Date de ieșire
Fişierul de ieşire frumos.out
va conţine pe prima linie numărul cerut, modulo .
Restricții și precizări
- Şirurile nu conţin două caractere alăturate identice.
- O subsecvenţă frumoasă poate fi formată dintr-un singur caracter.
- Şirurile conţin doar litere mici ale alfabetului englez:
a
,b
,c
, ,z
. - Un şir se numără o singură dată, chiar dacă există mai multe moduri de a-l împărţi în subsecvenţe frumoase.
Exemplu
frumos.in
2 1
frumos.out
650
Explicație
Şirurile de lungime care se împart în exact o grupă frumoasă sunt toate şirurile de lungime mai puţin cele de forma . Deci sunt şiruri -frumoase de lungime .