Alexandru, mare informatician, a decis să își impresioneze prietenii cu următoarea problemă: Dându-se un vector cu N numere naturale nenule, se întreabă care este numărul minim de mulțimi cu numere consecutive de forma {1...K} în care acesta poate fi împărțit. Spre exemplu vectorul A = {1, 3, 2, 2, 1, 4} poate fi împărțit în număr minim de partiții astfel {1, 2, 3, 4}, {1, 2}.
Cerința
Cum această problemă a fost prea dificilă pentru prietenii săi, Alexandru te roagă pe tine să o rezolvi.
Date de intrare
Fișierul de intrare mmult.in conține pe prima linie numărul N, iar pe a doua linie N numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire mmult.out va conține pe prima linie numărul S, reprezentând răspunsul problemei date de Alex.
Restricții și precizări
1 ≤ N ≤ 100.000- numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât
1.000.000 - dacă problema nu are soluție, se va afișa
-1
Exemplu:
mmult.in
6 1 3 2 2 1 4
mmult.out
2