#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int main()
{
long long int n,q,l,r,i;
scanf("%lld %lld %lld %lld",&n,&q,&l,&r);
long long int arr[n+1];
for(i=0;i<=n;i++)
arr[i]=0;
for(i=0;i<q;i++)
{
long long int a,x,y,j,k;
unsigned long long int counter=0,counte=0,count1=0,countf=0;
scanf("%lld %lld %lld",&a,&x,&y);
if(a==1)
{
arr[x]=y;
// printf("hello\n");
}
else
{
//printf("%lld %lld xy\n",x,y);
//here for the range of (x,y) index value which are less than r is set as 1 else 0
// continuous 1's will satisfy for R
long long int cc=y-x+2,vv=1;
int brr[cc];
for(j=x;j<=y;j++)
{
if(arr[j]<=r)
brr[vv]=1;
else
brr[vv]=0;
vv++;
}
//for(j=1;j<cc;j++)
//printf("%d ",brr[j]);
//printf("\n");
for(j=1;j<cc;j++)
{
if(brr[j]==1)
{
while(brr[j]==1&&j<cc)
{
count1++;
j++;
}
j--;
counte=counte+(count1*(count1+1))/2;
}
else
count1=0;
}
//here for the range of (x,y) index value which are less than l is set as 1 else 0
// continuous 1's will satisfy for L
count1=0;
vv=1;
for(j=x;j<=y;j++)
{
if(arr[j]<l)
brr[vv]=1;
else
brr[vv]=0;
vv++;
}
//for(j=1;j<cc;j++)
// printf("%d ",brr[j]);
//printf("\n");
for(j=1;j<cc;j++)
{
if(brr[j]==1)
{
while(brr[j]==1&&j<cc)
{
count1++;
j++;
}
j--;
countf=countf+(count1*(count1+1))/2;
}
else
count1=0;
}
// cout<<counte;
//cout<<(" ");
// cout<<countf;
//cout<<(" ");
// difference of r and l is my output.
counter=counte-countf;
cout<<(counter);
cout<<("\n");
}
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpCnsKICAgIGxvbmcgbG9uZyBpbnQgbixxLGwscixpOwogICAgc2NhbmYoIiVsbGQgJWxsZCAlbGxkICVsbGQiLCZuLCZxLCZsLCZyKTsKICAgIGxvbmcgbG9uZyBpbnQgYXJyW24rMV07CiAgICBmb3IoaT0wO2k8PW47aSsrKQogICAgICAgIGFycltpXT0wOwogICAgZm9yKGk9MDtpPHE7aSsrKQogICAgewogICAgICAgIGxvbmcgbG9uZyBpbnQgYSx4LHksaixrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgY291bnRlcj0wLGNvdW50ZT0wLGNvdW50MT0wLGNvdW50Zj0wOwogICAgICAgIHNjYW5mKCIlbGxkICVsbGQgJWxsZCIsJmEsJngsJnkpOwogICAgICAgIGlmKGE9PTEpCiAgICAgICAgewogICAgICAgICAgICBhcnJbeF09eTsKICAgICAgICAgICAvLyBwcmludGYoImhlbGxvXG4iKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAKICAgICAgICAgICAgLy9wcmludGYoIiVsbGQgJWxsZCB4eVxuIix4LHkpOwogICAgICAgICAgICAvL2hlcmUgZm9yIHRoZSByYW5nZSBvZiAoeCx5KSBpbmRleCB2YWx1ZSB3aGljaCBhcmUgbGVzcyB0aGFuIHIgaXMgc2V0IGFzIDEgZWxzZSAwCiAgICAgICAgICAgIC8vIGNvbnRpbnVvdXMgMSdzIHdpbGwgc2F0aXNmeSBmb3IgUgogICAgICAgICAgICBsb25nIGxvbmcgaW50IGNjPXkteCsyLHZ2PTE7CiAgICAgICAgICAgIGludCBicnJbY2NdOwogICAgICAgICAgICBmb3Ioaj14O2o8PXk7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihhcnJbal08PXIpCiAgICAgICAgICAgICAgICAgICAgYnJyW3Z2XT0xOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGJyclt2dl09MDsKIAogICAgICAgICAgICAgICAgdnYrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAvL2ZvcihqPTE7ajxjYztqKyspCiAgICAgICAgICAgICAgICAvL3ByaW50ZigiJWQgIixicnJbal0pOwogICAgICAgICAgICAgICAgLy9wcmludGYoIlxuIik7CiAgICAgICAgICAgIGZvcihqPTE7ajxjYztqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGJycltqXT09MSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3aGlsZShicnJbal09PTEmJmo8Y2MpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjb3VudDErKzsKICAgICAgICAgICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBqLS07CiAgICAgICAgICAgICAgICAgICAgY291bnRlPWNvdW50ZSsoY291bnQxKihjb3VudDErMSkpLzI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgY291bnQxPTA7CiAKICAgICAgICAgICAgfQogICAgICAgICAgICAvL2hlcmUgZm9yIHRoZSByYW5nZSBvZiAoeCx5KSBpbmRleCB2YWx1ZSB3aGljaCBhcmUgbGVzcyB0aGFuIGwgaXMgc2V0IGFzIDEgZWxzZSAwCiAgICAgICAgICAgIC8vIGNvbnRpbnVvdXMgMSdzIHdpbGwgc2F0aXNmeSBmb3IgTAogICAgICAgICAgICBjb3VudDE9MDsKICAgICAgICAgICAgdnY9MTsKICAgICAgICAgICAgZm9yKGo9eDtqPD15O2orKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoYXJyW2pdPGwpCiAgICAgICAgICAgICAgICAgICAgYnJyW3Z2XT0xOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGJyclt2dl09MDsKIAogICAgICAgICAgICAgICAgdnYrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAvL2ZvcihqPTE7ajxjYztqKyspCiAgICAgICAgICAgICAgIC8vIHByaW50ZigiJWQgIixicnJbal0pOwogICAgICAgICAgICAgICAgLy9wcmludGYoIlxuIik7CiAgICAgICAgICAgIGZvcihqPTE7ajxjYztqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGJycltqXT09MSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3aGlsZShicnJbal09PTEmJmo8Y2MpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjb3VudDErKzsKICAgICAgICAgICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBqLS07CiAgICAgICAgICAgICAgICAgICAgY291bnRmPWNvdW50ZisoY291bnQxKihjb3VudDErMSkpLzI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgY291bnQxPTA7CiAKICAgICAgICAgICAgfQogICAgICAgICAgIC8vIGNvdXQ8PGNvdW50ZTsKICAgICAgICAgICAgLy9jb3V0PDwoIiAiKTsKICAgICAgICAgICAvLyBjb3V0PDxjb3VudGY7CiAgICAgICAgICAgIC8vY291dDw8KCIgIik7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBkaWZmZXJlbmNlIG9mIHIgYW5kIGwgaXMgbXkgb3V0cHV0LgogICAgICAgICAgICBjb3VudGVyPWNvdW50ZS1jb3VudGY7CiAgICAgICAgICAgIGNvdXQ8PChjb3VudGVyKTsKICAgICAgICAgICAgY291dDw8KCJcbiIpOwogCiAKICAgICAgICB9CiAgICB9CiAKfQog