#include<bits/stdc++.h>
using namespace std;
inline void read(int& a){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') w = -1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
a=s*w;
}
struct stu{
int nu;
long long te,fe;
}nd[1000001];
int n,p;
int main(){
read(n);
read(p);
for(int i=1;i<=n;i++)
read(nd[i].nu);
long long su=0,maxx=nd[1].nu;
for(int i=1;i<=n;i++){
if(su<0)su=0;
su+=nd[i].nu;
maxx=max(maxx,su);
nd[i].te=maxx;
}
nd[1].fe=nd[1].te;
maxx=nd[1].te+nd[1].fe;
long long maxn=nd[1].fe;
for(int i=2;i<=n;i++){
nd[i].fe=maxx;
maxx=max(maxx,nd[i].te+nd[i].fe);
maxn=max(maxn,nd[i].fe);
}
cout<<maxn%p;
return 0;
}