rt,P1982。
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=1e6+10;
int n,p,a[N];
long long b[N],c[N];
bool flag;
int main(){
scanf("%d%d",&n,&p);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
for(int i=0;i<n;i++)b[i]=max(i?b[i-1]:0ll,0ll)+a[i];
c[0]=b[0],c[1]=c[0]+b[0];
if(!flag&&c[1]>c[0])flag=true;
if(flag)c[1]%=p;
for(int i=2;i<n;i++){
c[i]=c[i-1]+max(b[i-1],0ll);
if(!flag&&c[i]>c[0])flag=true;
if(flag)c[i]%=p;
}
printf("%d",flag?c[n-1]:c[0]%p);
return 0;
}