# include <bits/stdc++.h>
# define int long long
# define rint register int
using namespace std;
const int N = 1e5 + 10;
int n ,w, c1 ,c2 ,a[N];
int b[N];
inline void solve(){
scanf("%lld %lld" ,&n ,&w);
int mn = 1e18;
int sum = 0;
for(rint i = 1;i <= n;i ++) scanf("%lld" ,a + i) ,mn = min(mn ,a[i]);
c1 = c2 = 1;
if((c1 + c2) == 0){
puts("0 0");
return ;
} sort(a + 1 ,a + 1 + n);
int pos = -1;
for(rint i = 1 ;i <= n;i ++){
if(a[i] >= w){
pos = i - 1 ; break ;
}
} if(pos == -1) pos = n;
sort(a + 1 ,a + 1 + pos ,greater <int> ());
int mx = 0 ,ans1 = 0 ,temperature = w;
for(rint i = 1 ;i <= pos;i ++){
ans1 += abs(temperature - a[i]) ,
temperature = (abs(a[i + 1] - w) < abs(a[i + 1] - a[i])) ? w : a[i];
} for(rint i = pos + 1 ;i <= n;i ++){
ans1 += abs(temperature - a[i]) ,
temperature = (abs(a[i + 1] - w) < abs(a[i + 1] - a[i])) ? w : a[i];
} printf("%lld " ,ans1 * c1);
int ans2 = 0;
sort(a + 1, a + 1 + n);
int l = 1 ,r = n ,cnt = 0 ,mid = (n + 1) / 2;
while(l <= mid && r > mid){
b[++ cnt] = a[l] ,b[++ cnt] = a[r];
++ l ,-- r;
} if(!(l ^ r)) b[++ cnt] = a[r];
temperature = w;
for(rint i = 1 ;i <= n;i ++){
ans2 += abs(temperature - b[i]) ,
temperature = (abs(b[i + 1] - w) > abs(b[i + 1] - b[i])) ? w : b[i];
} for(rint i = 1 ;i <= n / 2;i ++) swap(b[i] ,b[n - i + 1]);
mx = ans2;
temperature = w ,ans2 = 0;
for(rint i = 1 ;i <= n;i ++){
ans2 += abs(temperature - b[i]) ,
temperature = (abs(b[i + 1] - w) > abs(b[i + 1] - b[i])) ? w : b[i];
} printf("%lld\n" ,max(mx ,ans2) * c2);
} inline void fre(){
freopen("temperature.in" ,"r" ,stdin);
freopen("temperature.out" ,"w" ,stdout);
}signed main(){
int T = 1;
while(T --) solve();
return 0;
}