#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,q,a[300005],st[1200006];
void UPDATE(int id, int l, int r, int i, int v)
{
if (l>i || r<i) return;
else if (l==r)
{
st[id]=v;
return;
}
int mid=(l+r)/2;
if (i<=mid) UPDATE(id*2,l,mid,i,v);
else UPDATE(id*2+1,mid+1,r,i,v);
st[id]=min(st[id*2],st[id*2+1]);
}
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;
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;
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,a[i]);
for (int i=1;i<=q;i++)
{
int t;
cin>>t;
if (t==1)
{
int pos,k;
cin>>pos>>k;
UPDATE(1,1,n,pos,k);
}
else
{
int l,r,k;
cin>>l>>r>>k;
cout<<GETL(1,1,n,l,r,k)<<' '<<GETR(1,1,n,l,r,k)<<'\n';
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixxLGFbMzAwMDA1XSxzdFsxMjAwMDA2XTsKdm9pZCBVUERBVEUoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCBpLCBpbnQgdikKewogICAgaWYgKGw+aSB8fCByPGkpIHJldHVybjsKICAgIGVsc2UgaWYgKGw9PXIpCiAgICB7CiAgICAgICAgc3RbaWRdPXY7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG1pZD0obCtyKS8yOwogICAgaWYgKGk8PW1pZCkgVVBEQVRFKGlkKjIsbCxtaWQsaSx2KTsKICAgIGVsc2UgVVBEQVRFKGlkKjIrMSxtaWQrMSxyLGksdik7CiAgICBzdFtpZF09bWluKHN0W2lkKjJdLHN0W2lkKjIrMV0pOwp9CmludCBHRVRMKGludCBpZCwgaW50IGwsIGludCByLCBpbnQgdSwgaW50IHYsIGludCBrKQp7CiAgICBpbnQgcmVzPS0xLG1pZD0obCtyKS8yOwogICAgaWYgKChzdFtpZF0+aykgfHwgKGw+diB8fCByPHUpKSByZXR1cm4gLTE7CiAgICBpZiAobD09cikgcmV0dXJuIHI7CiAgICByZXM9R0VUTChpZCoyLGwsbWlkLHUsdixrKTsKICAgIGlmIChyZXMhPS0xKSByZXR1cm4gcmVzOwogICAgZWxzZSAKICAgIHsKICAgICAgICByZXM9R0VUTChpZCoyKzEsbWlkKzEscix1LHYsayk7CiAgICAgICAgaWYgKHJlcyE9LTEpIHJldHVybiByZXM7CiAgICB9CiAgICByZXR1cm4gLTE7Cn0KaW50IEdFVFIoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdiwgaW50IGspCnsKICAgIGludCByZXM9LTEsbWlkPShsK3IpLzI7CiAgICBpZiAoKHN0W2lkXT5rKSB8fCAobD52IHx8IHI8dSkpIHJldHVybiAtMTsKICAgIGlmIChsPT1yKSByZXR1cm4gcjsKICAgIHJlcz1HRVRSKGlkKjIrMSxtaWQrMSxyLHUsdixrKTsKICAgIGlmIChyZXMhPS0xKSByZXR1cm4gcmVzOwogICAgZWxzZSAKICAgIHsKICAgICAgICByZXM9R0VUUihpZCoyLGwsbWlkLHUsdixrKTsKICAgICAgICBpZiAocmVzIT0tMSkgcmV0dXJuIHJlczsKICAgIH0KICAgIHJldHVybiAtMTsKfQpzaWduZWQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLGNpbi50aWUoMCksY291dC50aWUoMCk7CiAgICBjaW4+Pm4+PnE7CiAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIGNpbj4+YVtpXTsKICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykgVVBEQVRFKDEsMSxuLGksYVtpXSk7CiAgICBmb3IgKGludCBpPTE7aTw9cTtpKyspCiAgICB7CiAgICAgICAgaW50IHQ7CiAgICAgICAgY2luPj50OwogICAgICAgIGlmICh0PT0xKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHBvcyxrOwogICAgICAgICAgICBjaW4+PnBvcz4+azsKICAgICAgICAgICAgVVBEQVRFKDEsMSxuLHBvcyxrKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaW50IGwscixrOwogICAgICAgICAgICBjaW4+Pmw+PnI+Pms7CiAgICAgICAgICAgIGNvdXQ8PEdFVEwoMSwxLG4sbCxyLGspPDwnICc8PEdFVFIoMSwxLG4sbCxyLGspPDwnXG4nOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9