Un KST este un arbore de căutare care are K
valori în fiecare nod și fiecare nod are K+1
fii. De exemplu, pentru k=1
, un KST devine un arbore de căutare binar. Valorile din fiecare nod sunt în ordine crescătoare. Notăm cu v[i]
, a i
-a valoare dintr-un nod. Arborele are următoarea proprietate: pentru fiecare nod, primul său fiu va avea valori mai mici decât v[1]
, al doilea va avea valori aparținând intervalului (v[1], v[2])
, al treilea va avea valori din intervalul (v[2], v[3])
, …, penultimul fiu din intervalul (v[k-1], v[k])
, ultimul va avea valori mai mari decât v[k]
. Un nod nu poate avea fii dacă nu conține K
valori. Frunzele pot avea și mai puțin de K
valori.
Cerința
Se dă N
– numărul de elemente și K
, trebuie să se afle câți arbori care respectă cerința există. Elementele vor fi 1
, 2
, 3
, …, N
. De exemplu, următorii doi arbori sunt corecți pentru N = 13
si K = 3
:
Date de intrare
Prima linie conține numerele N
si K
.
Date de ieșire
Prima linie va conține numărul de arbori care satisfac cerința modulo 666013
.
Restricții și precizări
1 ≤ n, k ≤ 1000
- pentru
10%
din teste,n ≤ 10
șik ≤ 4
- pentru alte
15%
din teste,n ≤ 25
șik ≤ 4
- pentru alte
25%
din teste,n ≤ 1000
șik = 1
Exemplul 1:
Intrare
5 1
Ieșire
42
Exemplul 2:
Intrare
5 2
Ieșire
16
Exemplul 3:
Intrare
987 123
Ieșire
529937