#include <stdio.h>
#include <stdlib.h>
#include <limits.h>


void myfind(int x, int y);
void myupdate(int x, int y);

int* A;

int main()
{
	int i;
	int n, q;
	int (*dataset)[3];
	
	scanf("%d %d", &n, &q);
	
	/** A??????????蔵???????2^32-1??則????????? **/
	A = (int *)malloc(sizeof(int) * n);
	if(A == NULL){
		puts("###A malloc error");
		return 1;
	}
	
	for(i=0; i<n; i++) {
		A[i] = INT_MAX;
	}
	
	/** ????????????????????即??????????蔵???? **/
	dataset = malloc(sizeof(*dataset) * q);
	if(A == NULL){
		puts("###dataset malloc error");
		return 1;
	}
	/** ???????????????????????\??? **/
	for(i=0; i<q; i++) {
		scanf("%d %d %d", dataset[i]+0, dataset[i]+1, dataset[i]+2);
	}
	
	
	/** ??????????則? **/
	for(i=0; i<q; i++) {
		switch (dataset[i][0]) {
			case 0:
				myupdate(dataset[i][1], dataset[i][2]);
				break;
				
			case 1:
				myfind(dataset[i][1], dataset[i][2]);
				break;
		}
	}
	
	return 0;
}


void myupdate(int x, int y)
{
	A[x] = y;
}

void myfind(int x, int y)
{
	if(x != y) {
		int i;
		int min = INT_MAX;
		for(i=x; i<=y; i++) {
			if(A[i] < min) {
				min = A[i];
			}
		}
		printf("%d\n",min);
	}
	else {
		printf("%d\n",A[x]);
	}
}