#include <iostream>
#include<stdio.h>
using namespace std;
long int n,m,arbore[300000];
long long int interogare(long int, long int, long int, long int, long int);
void actualizare(long int, long int, long int,long int, long long int);
void constructie(long int, long int, long long int, long int, long int);
int main()
{
freopen("arbint.in","r",stdin);
freopen("arbint.out","w",stdout);
scanf("%ld %ld",&n,&m);
long int i;
for(i=1; i<=n; i++){long long int aux; cin>>aux; constructie(1,i,aux,1,n); }
for(i=1; i<=m; i++)
{
long int x,y,z;
scanf("%d %ld %ld",&x,&y,&z);
//cin>>x>>y>>z;
if(!x)
printf("%lld\n",interogare(1,1,n,y,z));
//cout<<interogare(1,1,n,y,z)<<'\n';
else actualizare(1,1,n,y,z);
}
return 0;
}
inline long long int interogare(long int nod, long int stg, long int drp, long int a, long int b)
{
// if(drp<a || stg >b)return -1;
// else if(a<=stg && drp<=b)return arbore[nod];
// else{
// long int mij=(stg+drp)/2;
// long long int stanga,dreapta;
// stanga=interogare(2*nod,stg,mij,a,b);
// dreapta=interogare(2*nod+1,mij+1,drp,a,b);
// if(stanga>dreapta)return stanga;
// else return dreapta;
// }
if(a<=stg && drp<=b)return arbore[nod];
else{
long long int stanga=-1,dreapta=-1,mij=(stg+drp)/2;
if(a<=mij)stanga=interogare(2*nod,stg,mij,a,b);
if(mij<b)dreapta=interogare(2*nod+1,mij+1,drp,a,b);
if(stanga>dreapta)return stanga;
else return dreapta;
}
}
inline void actualizare(long int nod, long int stg, long int drp,long int poz, long long int valoare)
{
if(stg==drp && stg==poz){ arbore[nod]=valoare; }
else
{
long int mij=(stg+drp)/2;
if(poz>mij) actualizare(2*nod+1,mij+1,drp,poz,valoare);
else actualizare(2*nod,stg,mij,poz,valoare);
if(arbore[2*nod]>arbore[2*nod+1])arbore[nod]=arbore[2*nod];
else arbore[nod]=arbore[2*nod+1];
}
}
inline void constructie(long int nod, long int poz, long long int valoare, long int stg, long int drp)
{
if(poz<=drp && poz>=stg && drp==stg){ arbore[nod]=valoare; }
else if(poz<=drp && poz>=stg)
{
if(valoare>arbore[nod])arbore[nod]=valoare;
long int mij=(stg+drp)/2;
constructie(2*nod,poz,valoare,stg,mij);
constructie(2*nod+1,poz,valoare,mij+1,drp);
}
}