#include<bits/stdc++.h>
using namespace std;
#define maxi 100000009;
void build(int seg[],int low,int high,int pos,int arr[]);
int query(int seg[],int qlow,int qhigh,int low,int high,int pos,int arr[]);
void build(int seg[],int low,int high,int pos,int arr[])
{
int mid;
if(low==high)
{
seg[pos] = arr[low];
}
else
{
mid = (low+high)/2;
build(seg,low,mid,(2*pos)+1,arr);
build(seg,mid+1,high,(2*pos)+2,arr);
seg[pos] = min(seg[(2*pos)+1],seg[(2*pos)+2]);
}
}
int query(int seg[],int qlow,int qhigh,int low,int high,int pos,int arr[])
{
int mid;
if(qlow<=low && qhigh>=high)
{
return seg[pos];//total overlap
}
else if(qlow>high || qhigh<low )
{
//no overlap
return 1000000;
}
else
{
mid = (low+high)/2;
return min(query(seg,qlow,qhigh,low,mid,(2*pos)+1,arr),query(seg,qlow,qhigh,mid+1,high,(2*pos)+2,arr));
}
}
int update(int seg[],int low,int high,int pos,int idx,int value,int arr[])
{
int mid;
if(low==high)
{
seg[pos] = value;
arr[idx] = value;
}
else
{
mid = (low+high)/2;
if(idx>=low && idx<=high)
{update(seg,low,mid,(2*pos)+1,idx,value,arr);}
else
{update(seg,mid+1,high,(2*pos)+2,idx,value,arr);}
seg[pos] = min(seg[(2*pos) +1],seg[(2*pos) +2]);
}
}
int seg[2000005];
int arr[2000005];
int main()
{
int a,b,c,d,e,f,g,h,i,j,k,l;
cin>>a;
cin>>b;
for(c=0;c<1000000;c++)
seg[c]=100000;
for(c=0;c<a;c++)
cin>>arr[c];
build(seg,0,a-1,0,arr);
char ch;int z;
for(c=0;c<b;c++)
{
cin>>ch>>e>>f;
if(ch=='q')
{
k = query(seg,e-1,f-1,0,a-1,0,arr);
cout<<k<<"\n";
}
else if(ch=='u')
{
update(seg,0,a-1,0,e-1,f,arr);
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBtYXhpIDEwMDAwMDAwOTsKdm9pZCBidWlsZChpbnQgc2VnW10saW50IGxvdyxpbnQgaGlnaCxpbnQgcG9zLGludCBhcnJbXSk7CmludCBxdWVyeShpbnQgc2VnW10saW50IHFsb3csaW50IHFoaWdoLGludCBsb3csaW50IGhpZ2gsaW50IHBvcyxpbnQgYXJyW10pOwp2b2lkIGJ1aWxkKGludCBzZWdbXSxpbnQgbG93LGludCBoaWdoLGludCBwb3MsaW50IGFycltdKQp7CiAgICBpbnQgbWlkOwogICAgaWYobG93PT1oaWdoKQogICAgewogICAgICAgICBzZWdbcG9zXSA9IGFycltsb3ddOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIG1pZCA9IChsb3craGlnaCkvMjsKICAgICAgICBidWlsZChzZWcsbG93LG1pZCwoMipwb3MpKzEsYXJyKTsKICAgICAgICBidWlsZChzZWcsbWlkKzEsaGlnaCwoMipwb3MpKzIsYXJyKTsKICAgICAgICBzZWdbcG9zXSA9IG1pbihzZWdbKDIqcG9zKSsxXSxzZWdbKDIqcG9zKSsyXSk7CiAgICB9Cn0KCmludCBxdWVyeShpbnQgc2VnW10saW50IHFsb3csaW50IHFoaWdoLGludCBsb3csaW50IGhpZ2gsaW50IHBvcyxpbnQgYXJyW10pCnsKICAgIGludCBtaWQ7CiAgICBpZihxbG93PD1sb3cgJiYgcWhpZ2g+PWhpZ2gpCiAgICB7CiAgICAgICAgcmV0dXJuIHNlZ1twb3NdOy8vdG90YWwgb3ZlcmxhcAogICAgfQogICAgZWxzZSBpZihxbG93PmhpZ2ggfHwgcWhpZ2g8bG93ICkKICAgIHsKICAgICAgICAvL25vIG92ZXJsYXAKICAgICAgICByZXR1cm4gMTAwMDAwMDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBtaWQgPSAobG93K2hpZ2gpLzI7CiAgICAgICAgcmV0dXJuIG1pbihxdWVyeShzZWcscWxvdyxxaGlnaCxsb3csbWlkLCgyKnBvcykrMSxhcnIpLHF1ZXJ5KHNlZyxxbG93LHFoaWdoLG1pZCsxLGhpZ2gsKDIqcG9zKSsyLGFycikpOwogICAgfQp9CmludCB1cGRhdGUoaW50IHNlZ1tdLGludCBsb3csaW50IGhpZ2gsaW50IHBvcyxpbnQgaWR4LGludCB2YWx1ZSxpbnQgYXJyW10pCnsKICAgIGludCBtaWQ7CiAgICBpZihsb3c9PWhpZ2gpCiAgICB7CiAgICAgICAgc2VnW3Bvc10gPSB2YWx1ZTsKICAgICAgICBhcnJbaWR4XSA9IHZhbHVlOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIG1pZCA9IChsb3craGlnaCkvMjsKICAgICAgICBpZihpZHg+PWxvdyAmJiBpZHg8PWhpZ2gpCiAgICAgICAge3VwZGF0ZShzZWcsbG93LG1pZCwoMipwb3MpKzEsaWR4LHZhbHVlLGFycik7fQplbHNlCiAgICAge3VwZGF0ZShzZWcsbWlkKzEsaGlnaCwoMipwb3MpKzIsaWR4LHZhbHVlLGFycik7fQoKCiAgICAgICAgc2VnW3Bvc10gPSBtaW4oc2VnWygyKnBvcykgKzFdLHNlZ1soMipwb3MpICsyXSk7CiAgICB9Cn0KCmludCBzZWdbMjAwMDAwNV07CgppbnQgYXJyWzIwMDAwMDVdOwppbnQgbWFpbigpCnsKCiAgICBpbnQgYSxiLGMsZCxlLGYsZyxoLGksaixrLGw7CiAgICBjaW4+PmE7CiAgICBjaW4+PmI7CmZvcihjPTA7YzwxMDAwMDAwO2MrKykKICAgIHNlZ1tjXT0xMDAwMDA7CiAgZm9yKGM9MDtjPGE7YysrKQogICAgICAgIGNpbj4+YXJyW2NdOwogICAgYnVpbGQoc2VnLDAsYS0xLDAsYXJyKTsKCiAgICAgICAgY2hhciBjaDtpbnQgejsKICAgIGZvcihjPTA7YzxiO2MrKykKICAgIHsKICAgICAgICBjaW4+PmNoPj5lPj5mOwogICAgICAgIGlmKGNoPT0ncScpCiAgICAgICAgewogICAgICAgayA9ICBxdWVyeShzZWcsZS0xLGYtMSwwLGEtMSwwLGFycik7CiAgICAgICBjb3V0PDxrPDwiXG4iOwoKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihjaD09J3UnKQogICAgICAgIHsKdXBkYXRlKHNlZywwLGEtMSwwLGUtMSxmLGFycik7CgogICAgICAgIH0KICAgIH0KfQo=