Kazak Vus və rənglər#10488

Kazak Vus və rənglər

1 saniyə
256 meqabayt
Asan

Kozak Vus yaxınlarda bir sırada yerləşən daş tapdı. Onun -dən -ya qədər nömrələnmiş müxtəlif rəngi var.

Kozak Vus daşları elə boyamaq istəyir ki, heç bir qonşu daş eyni rəngdə olmasın. Təəssüf ki, bəzi daşlar artıq boyanıb.

Kozak Vus maraqlanır ki, bu daşları yuxarıdakı şərtə uyğun boyamaq üçün neçə üsul var. Boyanmış daşları yenidən boyamaq olmaz.

Cavab çox böyük ola biləcəyi üçün onu 10^9+7-yə bölünmədən qalan kimi verin.

Giriş

Birinci sətir iki tam ədəd və (1 \le n \le 5 \cdot 10^5, 3 \le k \le 10^9) — daşların sayı və rənglərin sayı.

İkinci sətir tam ədəd a_1, a_2, \dots, a_n (0 \le a_i \le k) — daşların rəngləri. Əgər a_i=0, bu o deməkdir ki, müvafiq daş hələ boyanmayıb. Əgər 1 \le a_i \le k, bu o deməkdir ki, daş a_i nömrəli rənglə boyanıb.

Çıxış

Tək bir ədəd çıxarın — daşların boyanma üsullarının 10^9+7-yə bölünmədən qalanı.

Nümunələr

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading

Nümunə 3

Loading
Loading

Bal hesablama

  1. ( bal): n, k \le 7;

  2. ( bal): n, k \le 200, a_i=0;

  3. ( bal): n, k \le 200;

  4. ( bal): n, k \le 3000;

  5. ( bal): əlavə məhdudiyyətlərsiz.