//O(QNlogN) #include using namespace std; int n,q,a[200000],t,l,r; int main() { cin >> n >> q; for(int i = 0; i < n; i++) { cin >> a[i]; } for(int i = 0; i < q; i++){ cin >> t >> l >> r; if(t == 1){ l--; a[l] = r; } else{ l--,r--; int isok = 1,isng = 1e9 + 1; while(isng - isok > 1){ int mid =(isok + isng) / 2; int sum = 0,now = 0; for(int i = l; i <= r; i++){ if(a[i] >= mid){ sum++; if(now){ sum--; now = 0; } } else{ now = 1; } } if(now) sum--; if(sum > 0){ isok = mid; } else{ isng = mid; } } cout << isok << endl; } } }