#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,q,p[500005],st[2][2000006];
void UPDATE1(int id, int l, int r, int i, int v)
{
if (l>i || r<i) return;
else if (l==r)
{
st[0][id]=v;
return;
}
int mid=(l+r)/2;
if (i<=mid) UPDATE1(id*2,l,mid,i,v);
else UPDATE1(id*2+1,mid+1,r,i,v);
st[0][id]=min(st[0][id*2],st[0][id*2+1]);
}
void UPDATE2(int id, int l, int r, int i, int v)
{
if (l>i || r<i) return;
else if (l==r)
{
st[1][id]=v;
return;
}
int mid=(l+r)/2;
if (i<=mid) UPDATE2(id*2,l,mid,i,v);
else UPDATE2(id*2+1,mid+1,r,i,v);
st[1][id]=min(st[1][id*2],st[1][id*2+1]);
}
int GET1(int id, int l, int r, int u, int v)
{
if (l>v || r<u) return 1e18;
else if (l>=u && r<=v) return st[0][id];
int mid=(l+r)/2;
return min(GET1(id*2,l,mid,u,v),GET1(id*2+1,mid+1,r,u,v));
}
int GET2(int id, int l, int r, int u, int v)
{
if (l>v || r<u) return 1e18;
else if (l>=u && r<=v) return st[1][id];
int mid=(l+r)/2;
return min(GET2(id*2,l,mid,u,v),GET2(id*2+1,mid+1,r,u,v));
}
void UPDATE1(int i, int v)
{
UPDATE1(1,1,n,i,v);
return;
}
void UPDATE2(int i, int v)
{
UPDATE2(1,1,n,i,v);
return;
}
int GET1(int l, int r)
{
return GET1(1,1,n,l,r);
}
int GET2(int l, int r)
{
return GET2(1,1,n,l,r);
}
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>>p[i],UPDATE1(i,p[i]-i),UPDATE2(i,p[i]+i);
for (int i=1;i<=q;i++)
{
int t,k,x;
cin>>t;
if (t==1)
{
cin>>k>>x;
UPDATE1(k,x-k),UPDATE2(k,x+k);
}
else
{
cin>>k;
cout<<min(GET1(1,k)+k,GET2(k+1,n)-k)<<'\n';
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixxLHBbNTAwMDA1XSxzdFsyXVsyMDAwMDA2XTsKdm9pZCBVUERBVEUxKGludCBpZCwgaW50IGwsIGludCByLCBpbnQgaSwgaW50IHYpCnsKICAgIGlmIChsPmkgfHwgcjxpKSByZXR1cm47CiAgICBlbHNlIGlmIChsPT1yKQogICAgewogICAgICAgIHN0WzBdW2lkXT12OwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQ9KGwrcikvMjsKICAgIGlmIChpPD1taWQpIFVQREFURTEoaWQqMixsLG1pZCxpLHYpOwogICAgZWxzZSBVUERBVEUxKGlkKjIrMSxtaWQrMSxyLGksdik7CiAgICBzdFswXVtpZF09bWluKHN0WzBdW2lkKjJdLHN0WzBdW2lkKjIrMV0pOwp9CnZvaWQgVVBEQVRFMihpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IGksIGludCB2KQp7CiAgICBpZiAobD5pIHx8IHI8aSkgcmV0dXJuOwogICAgZWxzZSBpZiAobD09cikKICAgIHsKICAgICAgICBzdFsxXVtpZF09djsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkPShsK3IpLzI7CiAgICBpZiAoaTw9bWlkKSBVUERBVEUyKGlkKjIsbCxtaWQsaSx2KTsKICAgIGVsc2UgVVBEQVRFMihpZCoyKzEsbWlkKzEscixpLHYpOwogICAgc3RbMV1baWRdPW1pbihzdFsxXVtpZCoyXSxzdFsxXVtpZCoyKzFdKTsKfQppbnQgR0VUMShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHUsIGludCB2KQp7CiAgICBpZiAobD52IHx8IHI8dSkgcmV0dXJuIDFlMTg7CiAgICBlbHNlIGlmIChsPj11ICYmIHI8PXYpIHJldHVybiBzdFswXVtpZF07CiAgICBpbnQgbWlkPShsK3IpLzI7CiAgICByZXR1cm4gbWluKEdFVDEoaWQqMixsLG1pZCx1LHYpLEdFVDEoaWQqMisxLG1pZCsxLHIsdSx2KSk7Cn0KaW50IEdFVDIoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCB1LCBpbnQgdikKewogICAgaWYgKGw+diB8fCByPHUpIHJldHVybiAxZTE4OwogICAgZWxzZSBpZiAobD49dSAmJiByPD12KSByZXR1cm4gc3RbMV1baWRdOwogICAgaW50IG1pZD0obCtyKS8yOwogICAgcmV0dXJuIG1pbihHRVQyKGlkKjIsbCxtaWQsdSx2KSxHRVQyKGlkKjIrMSxtaWQrMSxyLHUsdikpOwp9CnZvaWQgVVBEQVRFMShpbnQgaSwgaW50IHYpCnsKICAgIFVQREFURTEoMSwxLG4saSx2KTsKICAgIHJldHVybjsKfQp2b2lkIFVQREFURTIoaW50IGksIGludCB2KQp7CiAgICBVUERBVEUyKDEsMSxuLGksdik7CiAgICByZXR1cm47Cn0KaW50IEdFVDEoaW50IGwsIGludCByKQp7CiAgICByZXR1cm4gR0VUMSgxLDEsbixsLHIpOwp9CmludCBHRVQyKGludCBsLCBpbnQgcikKewogICAgcmV0dXJuIEdFVDIoMSwxLG4sbCxyKTsKfQpzaWduZWQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLGNpbi50aWUoMCksY291dC50aWUoMCk7CiAgICBjaW4+Pm4+PnE7CiAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIGNpbj4+cFtpXSxVUERBVEUxKGkscFtpXS1pKSxVUERBVEUyKGkscFtpXStpKTsKICAgIGZvciAoaW50IGk9MTtpPD1xO2krKykKICAgIHsKICAgICAgICBpbnQgdCxrLHg7CiAgICAgICAgY2luPj50OwogICAgICAgIGlmICh0PT0xKSAKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+az4+eDsKICAgICAgICAgICAgVVBEQVRFMShrLHgtayksVVBEQVRFMihrLHgrayk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+azsKICAgICAgICAgICAgY291dDw8bWluKEdFVDEoMSxrKStrLEdFVDIoaysxLG4pLWspPDwnXG4nOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9