#include<iostream>
#include<algorithm>
#include<cstdio>

using namespace std;

const int NMAX=101010;
const int IMAX=2147483647;

int n,q,x,y,c,N=1;
int seg[NMAX*4-1];

void init(int n){
    while(N<n)N*=2;
    for(int i=0;i<2*N-1;++i)seg[i]=IMAX;
}

void upd(int i,int x){
    i+=N-1;
    seg[i]=x;
    while(i>0){
        i=(i-1)/2;
        seg[i]=min(seg[2*i+1],seg[2*i+2]);
    }
}

int query(int a,int b,int k,int l, int r){
    if(r<=a||b<=l)return IMAX;
    if(a<=l&&r<=b)return seg[k];
    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(){

    
    cin>>n>>q;
    init(n);
    for(int i=0;i<q;++i){
        scanf("%d%d%d",&c,&x,&y);
        if(c==0)upd(x,y);
        else printf("%d\n",query(x,y+1,0,0,N));
    }

    return 0;
}

