#include <bits/stdc++.h>
#define ll long long
#define pll pair<ll,ll>
#define foru(i,a,b) for(ll i=(a);i<=(b);i++)
#define ford(i,a,b) for(ll i=(a);i>=(b);i--)
#define ALL(a) a.begin(),a.end()
#define ROUND(x) fixed<<setprecision(x)
#define fi first
#define se second
using namespace std;
const int N=1e6+5;
int n,m;
int a[N*2];
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
if(fopen("venue.inp","r")){
freopen("venue.inp","r",stdin);
freopen("venue.out","w",stdout);
}
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
for(int i=n+1;i<=n*2;i++)a[i]=a[i-n]+m;
a[n*2+1]=a[1]+m*2;
int ma=1e18,vt=0;
for(int i=1;i<=n;i++){
int mid1=(a[i+n]+a[i+n-1])/2;
int mid2=(mid1+(m+1)/2);
while(mid2>a[i+n-1])mid2-=m;
int vt1=(lower_bound(a+i,a+i+n,mid1-(m+1)/2)-a);
int vt2=vt1-1;
int x1=max(min(abs(a[vt1]-mid1),m-abs(a[vt1]-mid1)),min(abs(a[vt2]-mid1),m-abs(a[vt2]-mid1)));
int x2=max(min(abs(a[i]-mid2),m-abs(a[i]-mid2)),min(abs(a[i+n-1]-mid2),m-abs(a[i+n-1]-mid2)));
if(ma>x1){
ma=x1;
vt=mid1;
}
if(ma>x2){
ma=x2;
vt=mid2;
}
}
cout<<ma<<' '<<(vt%m==0?m:vt%m);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgcGxsIHBhaXI8bGwsbGw+CiNkZWZpbmUgZm9ydShpLGEsYikgZm9yKGxsIGk9KGEpO2k8PShiKTtpKyspCiNkZWZpbmUgZm9yZChpLGEsYikgZm9yKGxsIGk9KGEpO2k+PShiKTtpLS0pCiNkZWZpbmUgQUxMKGEpIGEuYmVnaW4oKSxhLmVuZCgpCiNkZWZpbmUgUk9VTkQoeCkgZml4ZWQ8PHNldHByZWNpc2lvbih4KQojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOPTFlNis1OwppbnQgbixtOwppbnQgYVtOKjJdOwpzaWduZWQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKICAgIGlmKGZvcGVuKCJ2ZW51ZS5pbnAiLCJyIikpewogICAgICAgIGZyZW9wZW4oInZlbnVlLmlucCIsInIiLHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJ2ZW51ZS5vdXQiLCJ3IixzdGRvdXQpOwogICAgfQogICAgY2luPj5uPj5tOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGNpbj4+YVtpXTsKICAgIH0KICAgIHNvcnQoYSsxLGErMStuKTsKICAgIGZvcihpbnQgaT1uKzE7aTw9bioyO2krKylhW2ldPWFbaS1uXSttOwogICAgYVtuKjIrMV09YVsxXSttKjI7CiAgICBpbnQgbWE9MWUxOCx2dD0wOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGludCBtaWQxPShhW2krbl0rYVtpK24tMV0pLzI7CiAgICAgICAgaW50IG1pZDI9KG1pZDErKG0rMSkvMik7CiAgICAgICAgd2hpbGUobWlkMj5hW2krbi0xXSltaWQyLT1tOwogICAgICAgIGludCB2dDE9KGxvd2VyX2JvdW5kKGEraSxhK2krbixtaWQxLShtKzEpLzIpLWEpOwogICAgICAgIGludCB2dDI9dnQxLTE7CgogICAgICAgIGludCB4MT1tYXgobWluKGFicyhhW3Z0MV0tbWlkMSksbS1hYnMoYVt2dDFdLW1pZDEpKSxtaW4oYWJzKGFbdnQyXS1taWQxKSxtLWFicyhhW3Z0Ml0tbWlkMSkpKTsKICAgICAgICBpbnQgeDI9bWF4KG1pbihhYnMoYVtpXS1taWQyKSxtLWFicyhhW2ldLW1pZDIpKSxtaW4oYWJzKGFbaStuLTFdLW1pZDIpLG0tYWJzKGFbaStuLTFdLW1pZDIpKSk7CgogICAgICAgIGlmKG1hPngxKXsKICAgICAgICAgICAgbWE9eDE7CiAgICAgICAgICAgIHZ0PW1pZDE7CiAgICAgICAgfQogICAgICAgIGlmKG1hPngyKXsKICAgICAgICAgICAgbWE9eDI7CiAgICAgICAgICAgIHZ0PW1pZDI7CiAgICAgICAgfQogICAgfQogICAgY291dDw8bWE8PCcgJzw8KHZ0JW09PTA/bTp2dCVtKTsKICAgIHJldHVybiAwOwp9