WA
#include<bits/stdc++.h>
using namespace std;
long long a[100005],k,p;
int n;
long long sum[100005];
long long ans=0x5fffffffffffffff;
set<long long>ds;
int main(){
scanf("%d%lld%lld",&n,&k,&p);
for(int i=1;i<=n;i++) scanf("%lld",a+i);
for(int i=1;i<=n;i++) sum[i]=(sum[i-1]+a[i]%p)%p;
ds.insert(0x5fffffffffffffff);
for(int i=n;i>=1;i--){
ds.insert(sum[i]);
set<long long>::iterator it;
it=ds.lower_bound((sum[i-1]+k)%p);
long long x=*it;
if(x==0x5fffffffffffffff) continue;
ans=min(ans,(x-sum[i-1]+p)%p);
}
cout<<ans;
return 0;
}
O(nlog2n)