#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll maxn = 1000000+231;
const ll MOD=10007;
inline ll read_int(){
ll a=0,f=1,g=getchar();
while(g<'0'||g>'9'){if(g=='-') f=-1;g=getchar();}
while(g>='0'&&g<='9') a=a*10+g-'0',g=getchar();
return a*f;
}
inline void write(ll a,ll b){
if(a<0) a=-a,putchar('-');
ll lin[40],cnt=0;
while(a) lin[++cnt]=a%10,a/=10;
if(!cnt) cnt++,lin[cnt]=0;
while(cnt) putchar(lin[cnt]+'0'),cnt--;
if(b) putchar('\n');
}
ll sj[maxn],mod,n,spcio[maxn],gade[maxn],ans=-1e18;
inline void read(){
n=read_int(),mod=read_int();
for(ll i=1;i<=n;i++) sj[i]=read_int();
ll maxxn=-1e18,maxx=-1e18,lin=0,c=0;
for(ll i=1;i<=n;i++){
lin+=sj[i];
maxxn=max(maxxn,sj[i]);
if(lin<0) lin=0;
else maxx=max(maxx,lin),c++;
if(c==0) spcio[i]=maxxn;
else spcio[i]=maxx;
}
gade[1]=spcio[1];
for(ll i=2;i<=n;i++){
ans=max(ans,gade[i-1]+spcio[i-1]);
gade[i]=ans;
}
write(max(ans,gade[1])%mod,1);
}
int main (){
read();
}
记录