#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n,m,dp[2][10100],lista[101000],ponavljanja[10100];
set<int> s;
ll resenje1=0,resenje2=0,resenje=0;

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    for(int i=0;i<2;i++){
        for(int j=0;j<10010;j++){
            dp[i][j]=0;
            ponavljanja[j]=0;
        }
    }
    for(int i=1;i<=n;i++){
        cin>> lista[i];
        ponavljanja[lista[i]]++;
    }
    int x;
    for(int i=1;i<=n;i++){
        x=lista[i];
        if(i==1){
            for(int j=1;j<=m;j++){
                if(j<=x) dp[0][j]++;
                else dp[1][j]++;
            }
        }
        else if(s.count(x))continue;
        else{
            resenje1=0;
            resenje2=0;
            for(int j=1;j<=m;j++){
                if(j<=x){
                    resenje1+= (ll)(dp[0][j]+1)*(ll)dp[1][j];
                    resenje2+= (ll)dp[0][j]*(ll)(dp[1][j]+1);
                }
                else{
                    resenje1+= (ll)dp[0][j]*(ll)(dp[1][j]+1);
                    resenje2+= (ll)(dp[0][j]+1)*(ll)dp[1][j];
                }
            }
            if(resenje1<resenje2){
                resenje = resenje1;
                for(int j=1;j<=m;j++){
                    if(j<=x) dp[0][j]+=ponavljanja[x];
                    else dp[1][j]+=ponavljanja[x];
                }
            }
            else{
                resenje=resenje2;
                for(int j=1;j<=m;j++){
                    if(j<=x) dp[1][j]+=ponavljanja[x];
                    else dp[0][j]+=ponavljanja[x];

                }
            }
            s.insert(x);
        }
    }
    cout << resenje << endl;
    resenje=0;
    for(int i=1;i<=m;i++){
        resenje+= (ll)dp[0][i]*(ll)dp[1][i];
    }

    cout << resenje;
    return 0;
}