#include<iostream>

using namespace std;

int h=INT_MAX;
const int N=16,M=16;

int izr(int a[][M],int n,int m){
    int s=0;
    int k;
    for(int i=0;i<m;i++){
        k=0;
        for(int j=0;j<n;j++)
            k+=a[j][i];
        s+=(k*(n-k));
    }
    return s;
}
void boji(int a[][M],int n,int m,int i,int x[]){
    if(i<n){
        for(int j=0;j<m;j++)
            a[i][j]=0;
        for(int j=0;j<x[i];j++)
            a[i][j]=1;
        boji(a,n,m,i+1,x);
        for(int j=0;j<m;j++)
            a[i][j]=0;
        for(int j=x[i];j<m;j++)
            a[i][j]=1;
        boji(a,n,m,i+1,x);
    }
    else{
        int d=izr(a,n,m);
        //cout<<d<<" ";
        if(h>d)
            h=d;
    }
}
int main(){
    int n,m;
    cin>>n>>m;
    int x[n];
    for(int i=0;i<n;i++)
        cin>>x[i];
    int a[n][M];
    boji(a,n,m,0,x);
    cout<<h;
    return 0;
}