#include<fstream>
#include<cmath>
#define OO 1000000000
using namespace std;
ifstream fin("number2013.in");
ofstream fout("number2013.out");
long long n,nu[1000010],p;
long long spc[1000010],sc[1000010],tsc[1000010];
long long ma(long long a,long long b)
{
return a>b?a:b;
}
int main()
{
fin>>n>>p;
for(int i=1;i<=n;i++)
{
fin>>nu[i];
}
long long t=nu[1];
spc[1]=nu[1];
tsc[1]=spc[1];
long long l=nu[1];
bool f=false;
for(int i=2;i<=n;i++)
{
l=ma(0,l)+nu[i];
t=ma(t,l);
spc[i]=t;
}
tsc[1]=spc[1];
long long fir=tsc[1];
long long maxc=tsc[1]+spc[1];
for(int i=2;i<=n;i++)
{
tsc[i]=maxc;
if(spc[i]+tsc[i]>maxc)
maxc=spc[i]+tsc[i];
if(maxc>OO)
{
f=true;
maxc%=p;
}
}
if(f)
fout<<tsc[n]%p;
else
fout<<max(tsc[1],tsc[n])%p;
return 0;
}