#include <iostream>

using namespace std;

int matrica[1000][1000];
int niz[1000];
int n, m, maxf=INT_MAX;

void rek(int x){
    if (x==n){
        int br1=0;
        for (int i=0; i<m; ++i){
            int br=0;
            for (int j=0; j<n; ++j){
                if (matrica[j][i]==1)
                    ++br;
            }
            br1+=br*(n-br);
        }
        if (br1<maxf)
            maxf=br1;
        return;
    }
    for (int i=0; i<niz[x]; ++i){
        matrica[x][i]=1;
    }
    rek(x+1);
    for (int i=0; i<niz[x]; ++i){
        matrica[x][i]=0;
    }
    for (int i=m-1; i>=niz[x]; --i){
        matrica[x][i]=1;
    }
    rek(x+1);
    for (int i=m-1; i>=niz[x]; --i){
        matrica[x][i]=0;
    }
}

int main()
{
    cin >> n >> m;
    for (int i=0; i<n; ++i)
        cin >> niz[i];
    rek(0);
    cout << maxf;
    return 0;
}