Ion şi Ana se amuză construind cuvinte formate din litere mari ale alfabetului englez: A
, B
, , Z
. Aceștia îşi imaginează o nouă limbă care admite cuvinte conţinând subsecvenţe formate din aceeaşi literă. Ei au impus totuși o restricţie: niciun cuvânt nu trebuie să înceapă cu litera Z
. De exemplu, fie cuvântul: AAZCCCCADDDBBBBEEC
. Cuvântul nu începe cu Z
. El poate fi descompus în subsecvenţe formate din litere identice: AA Z CCCC A DDD BBBB EE
şi C
. Dintre acestea, CCCC
şi BBBB
au lungimea . Numim subsecvenţe repetabile maximale cele mai lungi subsecvenţe formate din litere identice. Deci, în exemplul de mai sus, CCCC
şi BBBB
sunt subsecvenţe repetabile maximale.
Întrebarea pe care şi-o pun acum Ion şi Ana este următoarea: care este numărul (modulo ) de cuvinte formate din cel mult litere mari ale alfabetului englez, care conţin cel puţin o secvenţă repetabilă maximală de lungime . Atenție, cuvintele nu vor putea conține secvențe repetabile de lungime strict mai mare decât .
Cerinţă
Cunoscând și , lungimea maximă a unui cuvânt și respectiv lungimea unei secvenţe repetabilă maximală, să se determine numărul de cuvinte care se pot forma, modulo .
Date de intrare
Fişierul de intrare nuz.in
conține pe prima linie numerele şi având semnificaţia din enunţ.
Date de ieșire
Fişierul de ieșire nuz.out
va conţine pe o singură linie un număr natural ce reprezintă numărul de cuvinte ce se pot forma conform cerinţei.
Restricții și precizări
- pentru din teste
Exemplul 1
nuz.in
2 2
nuz.out
25
Explicație
Exista de secvenţe: AA
, BB
, CC
, , YY
Exemplul 2
nuz.in
3 2
nuz.out
1275