Gửi bài giải

Điểm: 0,20 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cửa hàng bày bán ~n~ cuốn sách trên kệ ~a_1,a_2,...,a_n~ với ~m~ thể loại ~1,2,3,\cdots,m~, quyển sách thứ ~i~ thuộc loại ~a_i~ (~1 \le a_i \le m~). Bạn muốn mua một đoạn liên tiếp các cuốn sách sao cho đủ cả ~m~ loại sách.

Để tiết kiệm chi phí, bạn muốn mua càng ít sách càng tốt. Hãy tìm xem đoạn ngắn nhất cần phải mua có bao nhiêu quyển sách.

Input

Dòng đầu tiên có hai số nguyên ~n~ và ~m~ ~(1\le m \le n \le 5\times10^5)~: kích thước mảng và số lượng loại sách phân biệt

Dòng thứ hai có ~n~ số nguyên ~a_1, a_2, \dots, a_n~: các giá trị của mảng.

OutputFile

In ra số nguyên duy nhất là độ dài dãy con liên tiếp ít nhất cần mua để đủ ~m~ loại cách hoặc ~-1~ nếu không thể.

SampleInput

5 3
2 1 1 3 1

SampleOutput

4

Subtask

  • 60\% số test có ~ n, m \le 5000 ~
  • 40\% số test còn lại không có điều kiện gì thêm

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.