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.
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.
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ə 1
Nümunə 2
Nümunə 3
( bal): n, k \le 7;
( bal): n, k \le 200, a_i=0;
( bal): n, k \le 200;
( bal): n, k \le 3000;
( bal): əlavə məhdudiyyətlərsiz.