shgraf                                                                                                      100 puncte

 

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 N şi K, iar acum o întreabă pe Miruna câte grafuri etichetate cu N noduri şi cu proprietatea de „SHGRAF” există, astfel încât orice ciclu din graf are lungimea mai mare sau egală decât K.


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 30011.

 

Date de intrare

Fişierul de intrare shgraf.in conţine pe prima linie două numere naturale N şi K, 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 N noduri, fără cicluri de lungime mai mică decât K şi care au proprietatea de „SHGRAF”, modulo 30011.

 

Restricţii şi precizări

3 ≤ N ≤ 250

3 ≤ K ≤ N

Pentru 40% din teste 3 ≤ N ≤ 50

 

Exemplu

shgraf.in

shgraf.out

Explicaţie

3 3

1

Singurul graf care respectă condiţiile impuse este ciclul elementar format din 3 noduri.

50 10

20726

Numărul de grafuri este prea mare pentru mai multe explicaţii, va trebui să ne credeţi pe cuvânt ;)

 

Timp maxim de execuţie: 0.2 secunde pe test

Memorie totală disponibilă 128 MB, din care 1 MB pentru stivă