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 4. 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 30011) de cuvinte formate din cel mult n litere mari ale alfabetului englez, care conţin cel puţin o secvenţă repetabilă maximală de lungime k. Atenție, cuvintele nu vor putea conține secvențe repetabile de lungime strict mai mare decât k.
Cerința
Cunoscând n și k, 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 30011.
Date de intrare
Fișierul de intrare nuz.in conține pe prima linie numerele n şi k 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
2 ≤ K ≤ N ≤ 100 000- pentru
50%din testeN ≤ 1000
Exemplul 1
nuz.in
2 2
nuz.out
25
Explicație
Exista 25 de secvenţe: AA, BB, CC, …., YY
Exemplul 2
nuz.in
3 2
nuz.out
1275