lo


Gửi bài giải

Điểm: 1800,00 (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++, PyPy, Python

Cho dãy gồm ~n~ số nguyên ~a_1, a_2, ..., a_n~ (~1 ≤ a_i ≤ n; i = 1, 2, ..., n~). Một đoạn con tốt gồm các phần tử liên tiếp của dãy sao cho:

  • Ít nhất 1 số xuất hiện đúng một lần;
  • Ít nhất 1 số xuất hiện đúng hai lần;
  • ...
  • Ít nhất 1 số xuất hiện đúng ~k~ lần.

Hai đoạn con được gọi là khác nhau nếu tồn tại chỉ số đầu hoặc cuối của đoạn khác nhau.

Hãy đếm số đoạn con tốt của dãy đã cho.

Input

Dòng đầu tiên gồm hai số nguyên dương ~n, k~ (~n ≤ 10^5; k ≤ 4~);

Dòng thứ hai gồm ~n~ số nguyên dương ~a_i~ (~1 ≤ a_i ≤ n~) là giá trị của các phần tử của dãy ~a~.

Output

Một số nguyên là số lượng đoạn con tốt thỏa mãn yêu cầu của đề bài.

Test mẫu

Input

3 1  
1 2 1  

Output

6

Giải thích: Có 6 đoạn con tốt thỏa mãn là: [1]; [2]; [1]; [1,2]; [2,1]; [1,2,1].

Input

6 3  
5 6 5 4 5 5  

Output

1  

Giải thích: Chỉ có 1 đoạn con tốt duy nhất gồm toàn bộ các số là: [6,5,6,4,5,5].

Input

6 2  
5 4 5 2 6 5  

Output

5  

Giải thích: Có 5 đoạn con tốt là: [5,4,5]; [5,4,5,2]; [5,4,5,2,6]; [4,5,2,6,5]; [5,2,6,5].

Scoring

Subtask 1 (~30\%~): ~n ≤ 1000~

Subtask 2 (~20\%~): ~1 ≤ a_i ≤ k, ∀i = 1, 2, ..., n~

Subtask 3 (~30\%~): ~k = 1~

Subtask 4 (~20\%~): Không có ràng buộc gì thêm.