#import<fstream>
#define l int
#define R return
l a[400000],p=1,v,m,k,n,o;u(l s,l d,l i){if(s-d){m=(s+d)/2;if(p<=m)u(s,m,i*2+1);else u(m+1,d,i*2+2);a[i]=std::max(a[i*2+1],a[i*2+2]);}else a[i]=v;}l q(l s,l d,l x,l y,l i){if(x-s+d-y){m=(s+d)/2;if(y<=m)R q(s,m,x,y,i*2+1);if(x>m)R q(m+1,d,x,y,i*2+2);R std::max(q(s,m,x,m,i*2+1),q(m+1,d,m+1,y,i*2+2));}R a[i];}main(){std::ifstream f("arbint.in");std::ofstream g("arbint.out");f>>n>>k;for(;p<=n;p++){f>>v;u(1,n,0);}while(k--){f>>p;if(p){f>>p>>v;u(1,n,0);}else{f>>p>>v;g<<q(1,n,p,v,0)<<'\n';}}}