#include <bits/stdc++.h>
#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i>=(k);i--)
#define all(x) x.begin(),x.end()
#define sz(a) ((int)a.size())
#define pb push_back
using namespace std;
typedef long long ll;
int main(){
ll n,t;cin>>n>>t;
vector<ll>a(n);
L(i,0,n-1)cin>>a[i];
vector<ll>md(n);
L(i,0,n-1){
md[i]=a[i]%t;
}
ll r1=*max_element(all(md));
ll l1=*min_element(all(md));
ll f=(r1+l1)/2;
ll f1=0;
L(i,0,n-1){
f1=max(f1,llabs(md[i]-f));
}
ll cut=t/2;
L(i,0,n-1){
if(md[i]>=cut){
md[i]-=t;
}
}
r1=*max_element(all(md));
l1=*min_element(all(md));
f=(r1+l1)/2;
ll f2=0;
L(i,0,n-1){
f2=max(f2,llabs(md[i]-f));
}
cout<<min(f1,f2)<<endl;
}