#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;
ll getDistance(ll a,ll b){
if(b-a==1)return 1ll;
ll d=(b-a+1ll)/2ll;
return d;
}
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;
}
set<ll>left,right;
sort(all(md));
L(i,0,n-1)right.insert(md[i]);
ll ans=getDistance(*right.begin(),*right.rbegin());
R(i,n-1,0){
left.insert(md[i]-t);
if(i==0)break;
right.erase(md[i]);
ans=min(ans,getDistance(*left.begin(),*right.rbegin()));
}
cout<<ans<<endl;
}