/*
Zenit CK 2011/2012, uloha h)
Riesenie by Zemco.
Maxovy intervalovy strom, ktory dokaze spracovat
kazdu z operacii v case log(N)
Implementovany klasicky haldovo v poli. ak je w vrchol potom rodic je w/2 a deti 2*w, 2*w+1.
koren ma index 1, listy N az 2N-1 vratane.
Vid vzorak KSP, rocnik 2006/2007 (24), 1. kolo zimnej casti, uloha 6 o Novom jorku
*/
#include<cstdio>
//pole pre strom, dlzka dolneho poschodia
int I[250000],dlzka,N,K;
int mx(int a, int b){ return a < b ? b : a; }
void update(int w, int nw){
//ww - index v poli vo vrchole, kde momentalne sme
int ww = w+N-1;
//updatneme list
I[ww] = nw;
while(ww > 1){
ww/=2;
//upravime cestu od listu ku korenu
I[ww] = mx(I[ww*2],I[ww*2+1]);
}
}
//index pola, zodpovedajuci aktualnemu vrcholu. dlzka useku pod tymto vcholom. zelana hodnota
//predpoklad: v podstrome je aspon jedna hodnota aspon 'val'.
int search(int w, int length, int val){
//uz sme v liste
if (length == 1) return w-N+1;
//nachadza sa nejaka vyssia hodnota v lavom podstrome?
if (I[w*2] >= val) return search(w*2,length/2,val);
else return search(w*2+1,length/2,val);
}
int main(){
scanf("%d %d ",&dlzka,&K);
N = 1;
//najdeme najmensiu mocninu dvoch <= N
while (N < dlzka) N*=2;
//spracovame poziadavky
for(int i=0;i<K;i++){
int op;
scanf("%d ",&op);
if (op == 1){
int w,nw;
scanf("%d %d ",&w,&nw);
//updatneme zamestnanca w na hodnotu spokojnosti nw
update(w,nw);
}else{
int val;
scanf("%d ",&val);
//najdeme prislusneho zamestnanca
if (val > I[1]) printf("nikto\n");
else printf("%d\n",search(1,N,val));
}
}
return 0;
}
LyoKICBaZW5pdCBDSyAyMDExLzIwMTIsIHVsb2hhIGgpCiAgUmllc2VuaWUgYnkgWmVtY28uCgogIE1heG92eSBpbnRlcnZhbG92eSBzdHJvbSwga3RvcnkgZG9rYXplIHNwcmFjb3ZhdAogIGthemR1IHogb3BlcmFjaWkgdiBjYXNlIGxvZyhOKQoKICBJbXBsZW1lbnRvdmFueSBrbGFzaWNreSBoYWxkb3ZvIHYgcG9saS4gYWsgamUgdyB2cmNob2wgcG90b20gcm9kaWMgamUgdy8yIGEgZGV0aSAyKncsIDIqdysxLgogIGtvcmVuIG1hIGluZGV4IDEsIGxpc3R5IE4gYXogMk4tMSB2cmF0YW5lLgoKICBWaWQgdnpvcmFrIEtTUCwgcm9jbmlrIDIwMDYvMjAwNyAoMjQpLCAxLiBrb2xvIHppbW5laiBjYXN0aSwgdWxvaGEgNiBvIE5vdm9tIGpvcmt1CiAgICovCgojaW5jbHVkZTxjc3RkaW8+Ci8vcG9sZSBwcmUgc3Ryb20sIGRsemthIGRvbG5laG8gcG9zY2hvZGlhCmludCBJWzI1MDAwMF0sZGx6a2EsTixLOwppbnQgbXgoaW50IGEsIGludCBiKXsgcmV0dXJuIGEgPCBiID8gYiA6IGE7IH0KCnZvaWQgdXBkYXRlKGludCB3LCBpbnQgbncpewogIC8vd3cgLSBpbmRleCB2IHBvbGkgdm8gdnJjaG9sZSwga2RlIG1vbWVudGFsbmUgc21lCiAgaW50IHd3ID0gdytOLTE7CiAgLy91cGRhdG5lbWUgbGlzdAogIElbd3ddID0gbnc7CiAgd2hpbGUod3cgPiAxKXsKICAgIHd3Lz0yOwogICAgLy91cHJhdmltZSBjZXN0dSBvZCBsaXN0dSBrdSBrb3JlbnUKICAgIElbd3ddID0gbXgoSVt3dyoyXSxJW3d3KjIrMV0pOwogIH0KfQoKLy9pbmRleCBwb2xhLCB6b2Rwb3ZlZGFqdWNpIGFrdHVhbG5lbXUgdnJjaG9sdS4gZGx6a2EgdXNla3UgcG9kIHR5bXRvIHZjaG9sb20uIHplbGFuYSBob2Rub3RhCi8vcHJlZHBva2xhZDogdiBwb2RzdHJvbWUgamUgYXNwb24gamVkbmEgaG9kbm90YSBhc3BvbiAndmFsJy4KaW50IHNlYXJjaChpbnQgdywgaW50IGxlbmd0aCwgaW50IHZhbCl7CiAgLy91eiBzbWUgdiBsaXN0ZQogIGlmIChsZW5ndGggPT0gMSkgcmV0dXJuIHctTisxOwogIC8vbmFjaGFkemEgc2EgbmVqYWthIHZ5c3NpYSBob2Rub3RhIHYgbGF2b20gcG9kc3Ryb21lPwogIGlmIChJW3cqMl0gPj0gdmFsKSByZXR1cm4gc2VhcmNoKHcqMixsZW5ndGgvMix2YWwpOwogIGVsc2UgcmV0dXJuIHNlYXJjaCh3KjIrMSxsZW5ndGgvMix2YWwpOwp9CgppbnQgbWFpbigpewogIHNjYW5mKCIlZCAlZCAiLCZkbHprYSwmSyk7CiAgTiA9IDE7CiAgLy9uYWpkZW1lIG5ham1lbnNpdSBtb2NuaW51IGR2b2NoIDw9IE4KICB3aGlsZSAoTiA8IGRsemthKSBOKj0yOwoKICAvL3NwcmFjb3ZhbWUgcG96aWFkYXZreQogIGZvcihpbnQgaT0wO2k8SztpKyspewogICAgaW50IG9wOwogICAgc2NhbmYoIiVkICIsJm9wKTsKICAgIGlmIChvcCA9PSAxKXsKICAgICAgaW50IHcsbnc7CiAgICAgIHNjYW5mKCIlZCAlZCAiLCZ3LCZudyk7CiAgICAgIC8vdXBkYXRuZW1lIHphbWVzdG5hbmNhIHcgbmEgaG9kbm90dSBzcG9rb2pub3N0aSBudwogICAgICB1cGRhdGUodyxudyk7CiAgICB9ZWxzZXsKICAgICAgaW50IHZhbDsKICAgICAgc2NhbmYoIiVkICIsJnZhbCk7CiAgICAgIC8vbmFqZGVtZSBwcmlzbHVzbmVobyB6YW1lc3RuYW5jYQogICAgICBpZiAodmFsID4gSVsxXSkgcHJpbnRmKCJuaWt0b1xuIik7CiAgICAgIGVsc2UgcHJpbnRmKCIlZFxuIixzZWFyY2goMSxOLHZhbCkpOwogICAgfQogIH0KICByZXR1cm4gMDsKfQ==