#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long ll;
int n;
int p;
int a[1000005];
ll b[1000005];
ll c[1000005];
int main(){
//freopen("number.in","r",stdin);
//freopen("number.out","w",stdout);
scanf("%d%d",&n,&p);
for (int i=1;i<=n;i++)scanf("%d",&a[i]);
b[1]=a[1];
ll now=a[1]>0?a[1]:0;
for (int i=2;i<=n;i++){
b[i]=b[i-1];
now+=a[i];
b[i]=max(now,b[i]);
if(now<0)now=0;
}
c[1]=b[1];
c[2]=c[1]+b[1];
int ok=0;
ll tmp=c[1];
for (int i=2;i<=n-1;i++){
tmp+=max(b[i],0ll);
if(tmp>=0){
ok=1;
break;
}
}
for (int i=3;i<=n;i++)
c[i]=(c[i-1]+max(b[i-1],0ll))%p;
if(ok)printf("%d\n",int(c[n]));
else printf("%d\n",int(c[1]%p));
return 0;
}
/**************************************************************
Problem: 2322
User: admin
Language: C++
Result: Accepted
Time:446 ms
Memory:21608 kb
****************************************************************/