#include <iostream>
#include <cmath>
#include <algorithm>
#define N (1<<19)
#define INF 2147483647
using namespace std;
void Update(int,int);
int Find(int,int,int,int,int);
int tree[N],n,N1=N;
int main(){
  int q,com,x,y;
  if(N1%2==1) N1-=1;
  cin >> n >> q;
  for(int i=0;i<2*n-1;i++) Update(i,INF);
  while(q--){
    cin >> com >> x >> y;
    if(com==0) Update(x,y);
    else{
      int r=Find(x,y+1,0,0,N1/2);
      cout << r << endl;
    }
  }
  return 0;
}
void Update(int x,int y){
  x+=N1/2-1;
  tree[x]=y;
  while(x>0){
    x=(x-1)/2;
    tree[x]=min(tree[x*2+1],tree[x*2+2]);
  }
}
int Find(int a,int b,int k,int l,int r){
  if(r<=a||b<=l) return INF;
  if(a<=l&&r<=b) return tree[k];
  else{
    int vl=Find(a,b,k*2+1,l,(l+r)/2);
    int vr=Find(a,b,k*2+2,(l+r)/2,r);
    return min(vl,vr);
  }
}