În jurul muzeului din orașul Smallville exista un gard ce conține N
scânduri de înălțimi diferite. Putem spune că scândura i
are înălțimea H
i
. Directorul muzeului le-a cerut angajaților să vopsească acest gard cu un număr minim de culori, astfel încât să se respecte următoarea condiție: pentru un număr întreg K
cunoscut, orice secvență de K
scânduri consecutive nu trebuie să conțină două scânduri de aceeași înălțime, colorate identic.
Cerința
Scrieţi un program care să găsească numărul minim de culori ce vor fi folosite pentru a colora gardul.
Date de intrare
Fișierul de intrare culori.in
conține pe prima linie N K
– două numere întregi reprezentând numărul de scânduri și lungimea secvenței. Pe următoarea linie, N
numere naturale Hi reprezentand înălțimile celor N
scânduri.
Date de ieșire
Fișierul de ieșire culori.out
va conține un număr întreg C
reprezentând numărul minim de culori folosite.
Restricții și precizări
1 ≤ K ≤ 200.000
1 ≤ K ≤ N ≤ 1.000.000
1 ≤ H
i
≤ 1.000
- Pentru 50% din punctaj,
1 ≤ K ≤ N ≤ 5.000
- Pentru 80% din punctaj,
1 ≤ K ≤ N ≤ 200.000
Exemplu:
culori.in
6 4 1 1 2 1 3 2
culori.out
3
Explicație
O posibilă colorare a scândurilor folosind culorile 1
, 2
, 3
este: 1 2 1 3 1 2
.
Există 3
secvențe: 1 1 2 1
, 1 2 1 3
și 2 1 3 2
și orice secvență respectă condiția din enunț.