#include <bits/stdc++.h>
#define maxN 100005
#define maxM 10005

using namespace std;

long long c[maxM],a[maxN],n,m,i,tmp,ans;

long long dosada(){
long long ans=0;
for(int i=0;i<m;i++){
ans+=(n-c[i])*c[i];
}
return ans;
}

void update(int d,int v){
int i;
for(i=0;i<d;i++) c[i]+=v;
for(i=d;i<m;i++) c[i]-=v;
}

int main()
{
    std::ios_base::sync_with_stdio(false);
    cin>>n>>m;
    for(i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a,a+n);
    for(i=0;i<m;i++){
        tmp=upper_bound(a,a+n,i)-a;
        c[i]+=tmp;
    }
    ans=dosada();
    tmp=1;
    for(i=0;i<n-1;i++){
        if(a[i]==a[i+1]) {tmp++; continue;}
        update(a[i],tmp);
        tmp=1;
        ans=min(ans,dosada());
    }
    cout<<ans<<endl;
    return 0;
}