#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
****************************************************************/