#include<iostream>
#include<cstdio>
using namespace std;
int n,m,c;
long long p,s[50010],a[50010];
int main()
{
freopen("verbinden.in","r",stdin);
freopen("verbinden.out","w",stdout);
scanf("%d%d%lld%d",&n,&m,&p,&c);
for(int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
s[i]=(s[i-1]+a[i])%p;
}
for(int i=1;i<=m;i++)
{
int x,l,r;
scanf("%d%d%d",&x,&l,&r);
if(x==1)
{
long long ans;
ans=(s[r]-s[l-1])%p;
printf("%lld\n",ans);
}
}
return 0;
}