#include<bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < n; i++)

using namespace std;
typedef long long ll;
using Graph =vector<int>;
typedef pair<ll,ll> P;

const ll MAX_N=131072;
int dat[MAX_N*2-1];
int n;
void init(int n){
  rep(i,2*n-1) dat[i]=INT_MAX;
}
void update(int i,int x){
  i+=n-1;
  dat[i]=x;
  while(i>0){
    i=(i-1)/2;
    dat[i]=min(dat[i*2+1],dat[i*2+2]);
  }
}
int query(int a,int b,int k,int l,int r){
  if(r<=a||b<=l) return INT_MAX;
  if(a<=l&&r<=b) return dat[k];
  else{
    int vl=query(a,b,k*2+1,l,(l+r)/2);
    int vr=query(a,b,k*2+2,(l+r)/2,r);
    return min(vl,vr);
  }
}
int main(){
  int q;cin>>n>>q;
  int N=1;
  while(N<n) N*=2;
  n=N;
  init(n);
  rep(i,q){
    int com,x,y;cin>>com>>x>>y;
    if (com==0){
      update(x,y);
    }else{
      int ans=query(x,y+1,0,0,n);
      cout<<ans<<endl;
    }
  }
}

