Etichetare

Time limit: 0.1s Memory limit: 64MB Input: Output:

Cerință

Miki a terminat de pregătit murăturile pentru iarnă și acum dorește să eticheteze cele NN borcane pe care le-a umplut. El are la dispoziție KK etichete, numerotate de la 11 la KK.

Procesul de etichetare al borcanelor se va desfășura în următorul fel:

  • Initial Miki alege un borcan cu indicele idx1idx_1 (1idxiN1 \leq idx_i \leq N), și îi aplică eticheta cu numărul 11 (eidx1=1)(e_{idx_1}=1);
  • Pentru fiecare etichetă următoare, de la 22 la KK, Miki selectează un nou borcan, cu indicele idxiidx_i (1idxiN1 \leq idx_i \leq N), astfel încât diferența dintre indicii borcanelor consecutive să fie exact 11 (idxiidxi1=1)(\lvert idx_i−idx_{i−1}\rvert =1). Borcanul selectat va primi eticheta cu numărul corespunzător;
  • Dacă un borcan selectat are deja o etichetă, Miki va înlocui eticheta existentă cu cea nouă.

Prietenul său, Denis, i-a propus o etichetare finală a borcanelor1^1 - e1,e2,,eNe_1, e_2, \ldots,e_N. Acum, Miki se întreabă în câte moduri distincte ar putea obține etichetarea propusă, respectând procesul de etichetare menționat mai sus2^2. Ajutați-l pe Miki să calculeze acest număr modulo 998 244 353998\ 244\ 353.

Date de intrare

Pe prima linie, se vor afla două numere întregi NN și KK - numărul de borcane, respectiv numărul de etichete.

Pe a doua linie se vor afla NN numere e1,e2,,eNe_1, e_2, \ldots, e_N - etichetarea propusă de Denis.

Date de ieșire

Se va afișa o singură linie ce conține un singur număr întreg - numărul de modalități distincte prin care Miki poate obține etichetarea propusă de Denis modulo 998 244 353998\ 244\ 353.

Restricții și precizări

  • 1^1În cazul în care un borcan cu indicele ii rămâne neetichetat, eticheta acestuia va fi ei=0e_i=0;
  • 2^2Un proces de etichetare este considerat diferit de alt proces dacă ordinea borcanelor etichetate este diferită;
  • 2N5 0002 \leq N \leq 5\ 000;
  • 1K10 0001 \leq K \leq 10\ 000;
  • 0eiK0 \leq e_i \leq K;
  • Dacă iji \neq j, ei0e_i \neq 0 și ej0e_j \neq 0, atunci eieje_i \neq e_j;
  • Se garantează că etichetarea propusă de Denis este validă.

Subtask-uri

# Punctaj Restricții
0 0 Exemplul
1 13 1N,K201 \leq N, K \leq 20
2 21 1N,K2001 \leq N, K \leq 200
3 26 1N2 0001 \leq N \leq 2\ 000 și 1K5 0001 \leq K \leq 5\ 000
4 40 Fără restricții suplimentare

Exemplul 1

stdin

4 9
1 8 9 6

stdout

2

Explicație

Pentru primul exemplu există două procese de etichetare distincte:

  • 1 2 3 4 3 4 3 2 31\ 2\ 3\ 4\ 3\ 4\ 3\ 2\ 3;
  • 1 2 3 2 3 4 3 2 31\ 2\ 3\ 2\ 3\ 4\ 3\ 2\ 3.

Exemplul 2

stdin

6 16
0 5 16 15 12 11

stdout

18

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