#include #include using namespace std; long long a[100005],i,j,k,l,s,m,n,ans; int main() { while (scanf("%d%d",&n,&m)!=EOF) { ans=0; for (i=1;i<=n;i++) scanf("%d",&a[i]),a[i]%=m; sort(a+1,a+1+n); for (int i=1;i<=n;i++) { int ll=1,rr=n,s=0; while (ll<=rr) { int mid1=(ll+rr)>>1; if (a[i]+a[mid1]>=m) rr=mid1-1,s=mid1-1; else ll=mid1+1; } ll=1,rr=s; if (s==i) s--; if (s) ans=max(ans,a[i]+a[s]); if (s!=n) { if (i!=n) ans=max(ans,(a[i]+a[n])%m); else ans=max(ans,(a[i]+a[n-1])%m); } } printf("%d\n",ans); } }