munte

Time limit: 0.5s Memory limit: 128MB Input: Output:

O permutare de ordin NN se numeste permutaremuntepermutare-munte daca si numai daca pentru fiecare ii, 1iN1 \leq i \leq N, ii par, conditia v[i1]>v[i]<v[i+1]v[i-1]>v[i]<v[i+1] are loc. Daca i=Ni=N, doar conditia v[i1]>v[i]v[i-1]>v[i] trebuie sa aiba loc.

De exemplu permutarea de ordin 5 [2,1,4,3,5][2, 1, 4, 3, 5] este o permutaremuntepermutare-munte, deoarece 2>1<42>1<4 si 4>3<54>3<5, dar permutarea de ordin 5 [2,1,5,4,3][2, 1, 5, 4, 3] nu este o permutaremuntepermutare-munte deoarece 5>4>35>4>3, deci pentru i=4i=4 conditia nu este indeplinita.

O permutare de ordin NN este un sir de NN elemente care contine toate elementele de la 11 pana la NN in orice ordine. De exemplu, sirul [1,4,5,2,3][1, 4, 5, 2, 3] este o permutare de ordin 55, dar sirurile [1,3,2,3,5][1, 3, 2, 3, 5] si [1,2,3,5,6][1, 2, 3, 5, 6] nu sunt permutari de ordin 55.

Se dă un număr NN. Să se afle numarul permutărilor-munte de ordinul ii, 1iN1 \leq i \leq N. Deoarece raspunsul poate fi foarte mare, cerem doar restul impartirii raspunsului la un alt numar dat, MM.

Date de intrare

Pe prima linie se va afla numarul naturale NN, reprezentand numarul de ordin cu care trebuie sa faceti permutarile, si MM, restul la care trebuie sa aflati raspunsul.

Date de ieșire

Pe prima linie se va afisa rezultatul modulo MM.

Restricții și precizări

  • 1N50001 \leq N \leq 5000
  • 1M1091 \leq M \leq 10^9
  • MM este prim
  • M>NM > N
# Punctaj Restricții
1 11 1N101 \leq N \leq 10
2 13 1N181 \leq N \leq 18
3 17 1N5001 \leq N \leq 500
4 59 Fără alte restricții

Exemplu

stdin

5 19

stdout

6

Explicatie

Numarul permutarilor-munte cu ordinul 5\leq 5 este 2525. 22 dintre aceste permutari sunt [4,1,3,2][4, 1, 3, 2] si [3,1,2][3, 1, 2].

Log in or sign up to be able to send submissions!