1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <bits/stdc++.h>
#define vt vector
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
#define F first
#define S second
#define pb emplace_back
#define pii pair <int, int>
typedef long long ll;

using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	int n, k;
	cin >> n >> k;
	vt <bool> f(n + 1, false);
	priority_queue <int> pq;
	for (int i = 0; i < n; i++) {
		int x;
		cin >> x;
		if (!f[x]) {
			pq.push(i);
		}
		f[x] = true;
	}
	if (sz(pq) < k) {
		cout << "-1 \n";
		return 0;
	} 
	ll ans = 0;
	for (int i = 0; i < k; i++) {
		ans += pq.top() - i;
		pq.pop();
	}
	cout << ans << " \n";
}