#include <iostream>
#include <vector>
#include <deque>
#include <algorithm>
#define forn(i,n) for(int i=0;i<(int)n;++i)
#define SZ(v) (int)v.size()
#define ALL(v) v.begin(),v.end()
using namespace std;
typedef long long ll;
int main(){
cin.tie(0);
ios::sync_with_stdio(0);
int n, t;
cin>>n>>t;
vector<ll> a(n);
for(ll &x: a){
cin>>x;
x%=t;
}
sort(ALL(a));
a.resize(unique(ALL(a))-a.begin());
n = SZ(a);
if(SZ(a) == 1){
cout<<"0\n";
return 0;
}
if(SZ(a) == 2){
ll ans = min(a[1]-(a[0]+a[1])/2,a[0]+t-(a[1]+a[0]+t)/2);
cout<<ans<<"\n";
return 0;
}
ll ans = 2*t;
forn(i,n){
ll x = a[i], y = a[(i+1)%n];
if(i == n-1) y+=t;
x += t;
ans = min(ans, x-(x+y)/2);
}
cout<<ans<<"\n";
return 0;
}