#include <bits/stdc++.h>
using namespace std;
const int INF=pow(2,31)-1;
const int MAXN=1<<17;
int maxn;
int dat[2*MAXN-1];

void init(int n) {
  maxn=1;
  while (maxn<n) {
    maxn*=2;
  }
  fill(dat,dat+2*maxn-1,INF);
}
void update(int i,int x) {
  i+=maxn-1;
  dat[i]=x;
  while (i>0) {
    i=(i-1)/2;
    dat[i]=min(dat[2*i+1],dat[2*i+2]);
  }
}
int find(int x,int y,int k=0,int l=0,int r=maxn) {
  if (r<=x || y<=l) {
    return INF;
  }
  if (x<=l && r<=y) {
    return dat[k];
  } else {
    int vl=find(x,y,2*k+1,l,(l+r)/2);
    int vr=find(x,y,2*k+2,(l+r)/2,r);
    return min(vl,vr);
  }
}
int main() {
  int n, q;
  cin >> n >> q;
  init(n);
  for (int i=0; i<q; i++) {
    int com, x, y;
    cin >> com >> x >> y;
    if (com==0) {
      update(x,y);
    } else {
      printf("%d\n",find(x,y+1));
    }
  }
  return 0;
}