/* 钉子与木板
* 作者:国风崽
* 不知道对还是错,请人赐教
*/
#include <iostream>
using namespace std;
int main(){
int n;
int m;
int b[4];
cin>>n;
cin>>m;
int a[n+1];
for(int i=1;i<=n;++i){
cin>>a[i];
}
while(m>0){
int high=0;
cin>>b[0];
if(b[0]==0){
cin>>b[1]>>b[2];
a[b[1]]=b[2];
}else{
cin>>b[1]>>b[2]>>b[3];
for(int i=b[1];i<=b[2];++i){
if(a[i]<=b[3]){
high=(high>a[i]?high:a[i]);
}
}
cout<<high<<endl;
}
--m;
}
return 0;
}
* 作者:国风崽
* 不知道对还是错,请人赐教
*/
#include <iostream>
using namespace std;
int main(){
int n;
int m;
int b[4];
cin>>n;
cin>>m;
int a[n+1];
for(int i=1;i<=n;++i){
cin>>a[i];
}
while(m>0){
int high=0;
cin>>b[0];
if(b[0]==0){
cin>>b[1]>>b[2];
a[b[1]]=b[2];
}else{
cin>>b[1]>>b[2]>>b[3];
for(int i=b[1];i<=b[2];++i){
if(a[i]<=b[3]){
high=(high>a[i]?high:a[i]);
}
}
cout<<high<<endl;
}
--m;
}
return 0;
}