#include<bits/stdc++.h>
using namespace std;
const long long INF=(1LL<<31)-1;
vector<int> val;
int N;
void update(int i,int x){
  i+=N-1;
  val[i]=x;
  while(i){
    i=(i-1)/2;
    val[i]=min(val[i*2+1],val[i*2+2]);
  }
}
int query(int a,int b,int k,int l,int r){
  if(r<=a||b<=l){
    return INF;
  }
  if(a<=l&&r<=b){
    return val[k];
  }
  int u=query(a,b,2*k+1,l,(l+r)/2);
  int v=query(a,b,2*k+2,(l+r)/2,r);
  return min(u,v);
}
int main(){
  int n,q;cin >> n >> q;
  N=1;
  while(N<n){
    N*=2;
  }
  val=vector<int> (2*N-1,INF);
  for(int i=0;i<q;i++){
    int c,x,y;cin >> c >> x >> y;
    if(c){
      cout << query(x,y+1,0,0,N) << endl;
    }
    else{
      update(x,y);
    }
  }
}
