#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,q,a[300005],st[1200006],lz[1200006];
void UPDATE(int id, int l, int r, int u, int v, int x)
{
if (l>v || r<u) return;
else if (l>=u && r<=v)
{
st[id]+=x,lz[id]+=x;
return;
}
int mid=(l+r)/2;
st[id*2]+=lz[id],lz[id*2]+=lz[id],st[id*2+1]+=lz[id],lz[id*2+1]+=lz[id];
UPDATE(id*2,l,mid,u,v,x),UPDATE(id*2+1,mid+1,r,u,v,x);
st[id]=min(st[id*2],st[id*2+1]),lz[id]=0;
}
int GETL(int id, int l, int r, int u, int v, int k)
{
int res=-1,mid=(l+r)/2;
if ((st[id]>k) || (l>v || r<u)) return -1;
if (l==r) return r;
st[id*2]+=lz[id],lz[id*2]+=lz[id],st[id*2+1]+=lz[id],lz[id*2+1]+=lz[id],lz[id]=0;
res=GETL(id*2,l,mid,u,v,k);
if (res!=-1) return res;
else
{
res=GETL(id*2+1,mid+1,r,u,v,k);
if (res!=-1) return res;
}
return -1;
}
int GETR(int id, int l, int r, int u, int v, int k)
{
int res=-1,mid=(l+r)/2;
if ((st[id]>k) || (l>v || r<u)) return -1;
if (l==r) return r;
st[id*2]+=lz[id],lz[id*2]+=lz[id],st[id*2+1]+=lz[id],lz[id*2+1]+=lz[id],lz[id]=0;
res=GETR(id*2+1,mid+1,r,u,v,k);
if (res!=-1) return res;
else
{
res=GETR(id*2,l,mid,u,v,k);
if (res!=-1) return res;
}
return -1;
}
signed main()
{
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>q;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=n;i++) UPDATE(1,1,n,i,i,a[i]);
for (int i=1;i<=q;i++)
{
int t,l,r,x;
cin>>t>>l>>r>>x;
if (t==1) UPDATE(1,1,n,l,r,x);
else cout<<GETL(1,1,n,l,r,x)<<' '<<GETR(1,1,n,l,r,x)<<'\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixxLGFbMzAwMDA1XSxzdFsxMjAwMDA2XSxselsxMjAwMDA2XTsKdm9pZCBVUERBVEUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgaW50IHgpCnsKICAgIGlmIChsPnYgfHwgcjx1KSByZXR1cm47CiAgICBlbHNlIGlmIChsPj11ICYmIHI8PXYpCiAgICB7CiAgICAgICAgc3RbaWRdKz14LGx6W2lkXSs9eDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkPShsK3IpLzI7CiAgICBzdFtpZCoyXSs9bHpbaWRdLGx6W2lkKjJdKz1seltpZF0sc3RbaWQqMisxXSs9bHpbaWRdLGx6W2lkKjIrMV0rPWx6W2lkXTsKICAgIFVQREFURShpZCoyLGwsbWlkLHUsdix4KSxVUERBVEUoaWQqMisxLG1pZCsxLHIsdSx2LHgpOwogICAgc3RbaWRdPW1pbihzdFtpZCoyXSxzdFtpZCoyKzFdKSxseltpZF09MDsKfQppbnQgR0VUTChpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2LCBpbnQgaykKewogICAgaW50IHJlcz0tMSxtaWQ9KGwrcikvMjsKICAgIGlmICgoc3RbaWRdPmspIHx8IChsPnYgfHwgcjx1KSkgcmV0dXJuIC0xOwogICAgaWYgKGw9PXIpIHJldHVybiByOwogICAgc3RbaWQqMl0rPWx6W2lkXSxseltpZCoyXSs9bHpbaWRdLHN0W2lkKjIrMV0rPWx6W2lkXSxseltpZCoyKzFdKz1seltpZF0sbHpbaWRdPTA7CiAgICByZXM9R0VUTChpZCoyLGwsbWlkLHUsdixrKTsKICAgIGlmIChyZXMhPS0xKSByZXR1cm4gcmVzOwogICAgZWxzZSAKICAgIHsKICAgICAgICByZXM9R0VUTChpZCoyKzEsbWlkKzEscix1LHYsayk7CiAgICAgICAgaWYgKHJlcyE9LTEpIHJldHVybiByZXM7CiAgICB9CiAgICByZXR1cm4gLTE7Cn0KaW50IEdFVFIoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgaW50IGspCnsKICAgIGludCByZXM9LTEsbWlkPShsK3IpLzI7CiAgICBpZiAoKHN0W2lkXT5rKSB8fCAobD52IHx8IHI8dSkpIHJldHVybiAtMTsKICAgIGlmIChsPT1yKSByZXR1cm4gcjsKICAgIHN0W2lkKjJdKz1seltpZF0sbHpbaWQqMl0rPWx6W2lkXSxzdFtpZCoyKzFdKz1seltpZF0sbHpbaWQqMisxXSs9bHpbaWRdLGx6W2lkXT0wOwogICAgcmVzPUdFVFIoaWQqMisxLG1pZCsxLHIsdSx2LGspOwogICAgaWYgKHJlcyE9LTEpIHJldHVybiByZXM7CiAgICBlbHNlIAogICAgewogICAgICAgIHJlcz1HRVRSKGlkKjIsbCxtaWQsdSx2LGspOwogICAgICAgIGlmIChyZXMhPS0xKSByZXR1cm4gcmVzOwogICAgfQogICAgcmV0dXJuIC0xOwp9CnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksY2luLnRpZSgwKSxjb3V0LnRpZSgwKTsKICAgIGNpbj4+bj4+cTsKICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgY2luPj5hW2ldOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBVUERBVEUoMSwxLG4saSxpLGFbaV0pOwogICAgZm9yIChpbnQgaT0xO2k8PXE7aSsrKQogICAgewogICAgICAgIGludCB0LGwscix4OwogICAgICAgIGNpbj4+dD4+bD4+cj4+eDsKICAgICAgICBpZiAodD09MSkgVVBEQVRFKDEsMSxuLGwscix4KTsKICAgICAgICBlbHNlIGNvdXQ8PEdFVEwoMSwxLG4sbCxyLHgpPDwnICc8PEdFVFIoMSwxLG4sbCxyLHgpPDwnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=