#include <iostream>
#include <cstring>


using namespace std;

int main() {
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);
	
	unsigned int k; //liczba skrajnie lewych butelek
	unsigned int n; //liczba butelek
	unsigned int pom=0;//przechowuje butelkę do usunięcia 
	unsigned long long czas=0;//zmienna do liczenia czasu
			
	cin >> n >> k;
	
	unsigned int butelki[n];//marki butelek od lewej
	unsigned int marki[n+1];
	
	memset(marki, 0, sizeof marki+1); //wyzerowanie elementów tablicy

	for(unsigned int i=0;i<n; i++)
	{
		cin>>butelki[i];
		marki[butelki[i]]++;//zliczam ile jest elementów danej marki
	}
	
	//zliczam ile jest marek
	unsigned int ile_marek=0;	
	for(unsigned int i=0;i<n+1; i++)
	{
		if(marki[i]>0) 
		{
			ile_marek++;
		}
	}
	
	if(k>ile_marek) cout<<-1;
	else
	{
		//liczenie czasu
		
		for(unsigned int i=0;i<k; i++)
		{
			//wykreslanie marek które już są w ciagu k elementowym
			if(marki[butelki[i]]!=0)
			{
				marki[butelki[i]]=0;
			}
			else//marka już wystapiła w ciagu k elementowym, trzeba szukać kolejnej liczby w ciągu by ja na tym miejscu wstawić
			{
				for(unsigned int j=i+1;j<n;j++) //szukam nowej do stawienia marki
				{
					if(marki[butelki[j]]!=0)
					{
						//wstawiam na i te miejsce i licze czas
						czas += j-i;
						
						pom = butelki[j];//element do przesuniecia w ciągu
						//cout<<"czas"<<czas<<" i"<<i<<" j"<<j<<" pom"<<pom<<endl;
						for (unsigned int k = j; k > i; --k)//przesuwanie butelek
       					{
            				butelki[k] = butelki[k-1];
            			}
            			butelki[i] = pom;
						
						marki[pom]=0;
						i++;
						
					}
					if(i==k) break;
					
				}
			}
			
			
		}
		cout<<czas;
	}
	
	/*cout<<"butelki\n";
	for(int i=0;i<n; i++)
	{
		cout<<butelki[i]<<" ";//zliczam ile jest elementów danej marki
	}
	cout<<"\n";*/
	
	
	
	return 0;
}
