#include<cstdio>
#include<algorithm>
using namespace std;

const int INF = 2147483647;

int n,q,_n;
int data[262143];

void init(int n){
  _n = 1;
  while(_n<n){
    _n *= 2;
  }
  fill(data,data+2*_n-1,INF);
}

void update(int i,int x){
  i += _n-1;
  data[i] = x;
  while(i>0){
    i = (i-1)/2;
    data[i] = min(data[2*i+1],data[2*i+2]);
  }
}

int query(int a,int b,int k,int l,int r){
  if(a<=l&&r<=b+1) return data[k];
  else if(b<l||a>=r) return INF;
  else{
    int vl = query(a,b,2*k+1,l,(l+r)/2);
    int vr = query(a,b,2*k+2,(l+r)/2,r);
    return min(vl,vr);
  }
}

int main(){
  scanf("%d %d",&n,&q);
  init(n);
  for(int i=0;i<q;i++){
    int cmd,a,b;
    scanf("%d%d%d",&cmd,&a,&b);
    if(cmd==0) update(a,b);
    else if(cmd==1) printf("%d\n",query(a,b,0,0,_n));
  }
  return 0;
}