Un arbore cu rădăcină este format dintr-o mulţime de noduri, dintre care un nod special denumit rădăcină. Fiecare nod are precizată o listă ordonată de noduri fiu, iar fiecare nod diferit de rădăcină este fiul al exact unui alt nod denumit părinte. Rădăcina nu are părinte.
Subarborele unui nod este un arbore cu rădăcină obţinut eliminând orice nod care nu este fiu direct sau indirect al nodului şi considerând nodul rădăcină.
Fie doi arbori cu rădăcină , cu rădăcinile şi respectiv . Fie lista ordonată a fiilor lui , lista ordonată a fiilor lui . Spunem că arborii , sunt egali dacă şi pentru orice subarborii cu rădăcinile şi sunt egali.
Spunem că arborele apare în arborele dacă există un nod din astfel încât subarborele cu rădăcina este egal cu arborele .
Gigel are o afacere cu o mulţime de arbori cu rădăcină (denumiţi model) . Gigel vinde numai arbori cu rădăcină având noduri în care nu apar nici unul dintre arborii model.
Cerinţă
Scrieţi un program care să calculeze câţi arbori cu rădăcină cu noduri distincţi poate vinde Gigel.
Date de intrare
Fişierul de intrare arbnr.in
conţine pe prima linie numerele naturale şi reprezentând numărul de noduri din arborii vânduţi de Gigel şi respectiv numărul de arbori model. În continuare urmează blocuri de date, fiecare bloc reprezentând descrierea unui arbore model. Blocul care descrie un arbore model conţine pe prima linie un număr natural reprezentând numărul de noduri din arbore. Pe cea de a doua linie sunt scrise numere naturale separate prin spaţiu. Al -lea număr de pe linie este nodul părinte al nodului . Rădăcina este nodul cu numărul . Ordinea fiilor este considerată ordinea crescătoare a numerelor lor de ordine.
Date de ieșire
Fişierul arbnr.out
va conţine o singură linie pe care va fi scris un număr natural reprezentând numărul de arbori cu rădăcină distincţi cu noduri în care nu apare nici unul dintre arborii model modulo .
Restricții și precizări
- din punctaj se acordă pentru şi
- din punctaj se acordă pentru
Exemplu
arbnr.in
4 2
3
1 2
3
1 1
arbnr.out
3