#include <bits/stdc++.h>

using namespace std;

int gr[100001];
int kolone[100001];

long long rez = LLONG_MAX;

void ekspo(int n, int m, int i)
{
    if(i>n)
    {
        long long sum = 0;
        for(int j=1;j<=m;j++)
            sum = sum + (n-kolone[j])*kolone[j];
        rez = min(rez, sum);
        return;
    }
    for(int j=1;j<=gr[i];j++) kolone[j]++;
    ekspo(n, m, i+1);

    for(int j=1;j<=m;j++)
    {
        if(j<=gr[i]) kolone[j]--;
        else kolone[j]++;
    }
    ekspo(n, m, i+1);
    for(int j=1;j<=m;j++)
    {
        if(j>gr[i]) kolone[j]--;
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, m;
    cin >> n >> m;
    for(int i=1;i<=n;i++)
    {
        cin >> gr[i];
    }

    if(n<22 && m<30)
    {
        ekspo(n, m, 1);
        cout << rez;
        return 0;
    }

    rez=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(j<=gr[i]) kolone[j]++;
        }
    }

    int pom[100001];
    for(int i=0;i<n;i++) pom[i] = gr[i+1];
    sort(pom, pom+n);
    for(int i=1;i<=n;i++) gr[i] = pom[n-i];

    for(int i=1;i<=n;i++)
    {
        long long sum1 = 0, sum2 = 0;
        for(int j=1;j<=m;j++)
        {
            sum1 = sum1 + (n-kolone[j])*kolone[j];
        }
        for(int j=1;j<=m;j++)
        {
            if(j<=gr[i]) sum2 = sum2 + (n-kolone[j]+1)*(kolone[j]-1);
            else sum2 = sum2 + (n-kolone[j]-1)*(kolone[j]+1);
        }


        if(sum2<sum1)
        {
            for(int j=1;j<=m;j++)
            {
                if(j<=gr[i]) kolone[j]--;
                else kolone[j]++;
            }
        }


    }

    long long sum = 0;
        for(int j=1;j<=m;j++)
            sum = sum + (n-kolone[j])*kolone[j];
    cout<<sum;

    return 0;
}
/*
6 5
3 1 2 1 3 5
*/