Miruna a devenit de curând fascinată de grafuri. Mirunei i-au plăcut grafurile atât de tare, încât s-a decis să inventeze o nouă proprietate a lor. Astfel, ea consideră că un graf neorientat simplu are proprietatea de SHGRAF dacă şi numai dacă se respectă una dintre următoarele două cerinţe:
- Este un graf conex în care numărul de noduri este egal cu numărul de muchii.
- Nu este un graf conex, dar fiecare componentă conexă a sa are proprietatea de SHGRAF.
Prietena cea mai bună a Mirunei, A. Irina, este o fire foarte curioasă. Ea s-a gândit la două numere naturale şi , iar acum o întreabă pe Miruna câte grafuri etichetate cu noduri şi cu proprietatea de SHGRAF există, astfel încât orice ciclu din graf are lungimea mai mare sau egală decât .
Cerinţă
Ajutaţi-o pe Miruna să răspundă provocării A. Irinei, scriind un program care sa afişeze numărul căutat modulo .
Date de intrare
Fişierul de intrare shgraf.in
conţine pe prima linie două numere naturale şi , având semnificaţia din enunţ.
Date de ieșire
Fişierul de ieşire shgraf.out
va conţine o singură linie pe care va fi afişat un număr întreg, reprezentând numărul total de grafuri etichetate cu noduri, fără cicluri de lungime mai mică decât şi care au proprietatea de SHGRAF, modulo .
Restricții și precizări
- ;
- ;
- ;
- Pentru din teste ;
Exemplul 1
shgraf.in
3 3
shgraf.out
1
Explicație
Singurul graf care respectă condiţiile impuse este ciclul elementar format din noduri.
Exemplul 2
shgraf.in
50 10
shgraf.out
20726
Explicație
Numărul de grafuri este prea mare pentru mai multe explicaţii, va trebui să ne credeţi pe cuvânt ;)