#include <bits/stdc++.h>
using namespace std;
struct Nodo {
int dato;
Nodo *izq;
Nodo *der;
};
Nodo *nuevoNodo(int valor) {
Nodo *nodo = new Nodo;
nodo->dato = valor;
nodo->izq = nullptr;
nodo->der = nullptr;
return nodo;
}
Nodo *insertar(Nodo *r, int valor) {
if (r == nullptr) return nuevoNodo(valor);
if (valor < r->dato) r->izq = insertar(r->izq, valor);
else r->der = insertar(r->der, valor);
return r;
}
string buscar(Nodo *raiz, int x) {
string s = "";
Nodo *r = raiz;
while (r != nullptr) {
if (x == r->dato) {
if (s.empty()) return "RAIZ";
else return s;
}
if (x < r->dato) {
s = s + 'L';
r = r->izq;
} else {
s = s + 'R';
r = r->der;
}
}
return "NO EXISTE";
}
int main() {
int q;
if (!(cin >> q)) return 0;
Nodo *raiz = nullptr;
char operacion;
int x;
for (int i = 0; i < q; i++) {
cin >> operacion >> x;
if (operacion == 'I') {
raiz = insertar(raiz, x);
} else if (operacion == 'R') {
string resultado = buscar(raiz, x);
cout << resultado << "\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kbyB7CiAgICBpbnQgZGF0bzsKICAgIE5vZG8gKml6cTsKICAgIE5vZG8gKmRlcjsKfTsKCk5vZG8gKm51ZXZvTm9kbyhpbnQgdmFsb3IpIHsKICAgIE5vZG8gKm5vZG8gPSBuZXcgTm9kbzsKICAgIG5vZG8tPmRhdG8gPSB2YWxvcjsKICAgIG5vZG8tPml6cSA9IG51bGxwdHI7CiAgICBub2RvLT5kZXIgPSBudWxscHRyOwogICAgcmV0dXJuIG5vZG87Cn0KCk5vZG8gKmluc2VydGFyKE5vZG8gKnIsIGludCB2YWxvcikgewogICAgaWYgKHIgPT0gbnVsbHB0cikgcmV0dXJuIG51ZXZvTm9kbyh2YWxvcik7CiAgICBpZiAodmFsb3IgPCByLT5kYXRvKSByLT5penEgPSBpbnNlcnRhcihyLT5penEsIHZhbG9yKTsKICAgIGVsc2Ugci0+ZGVyID0gaW5zZXJ0YXIoci0+ZGVyLCB2YWxvcik7CiAgICByZXR1cm4gcjsKfQoKc3RyaW5nIGJ1c2NhcihOb2RvICpyYWl6LCBpbnQgeCkgewogICAgc3RyaW5nIHMgPSAiIjsgCiAgICBOb2RvICpyID0gcmFpejsKICAgIAogICAgd2hpbGUgKHIgIT0gbnVsbHB0cikgewogICAgICAgIGlmICh4ID09IHItPmRhdG8pIHsKICAgICAgICAgICAgaWYgKHMuZW1wdHkoKSkgcmV0dXJuICJSQUlaIjsKICAgICAgICAgICAgZWxzZSByZXR1cm4gczsKICAgICAgICB9CiAgICAgICAgaWYgKHggPCByLT5kYXRvKSB7CiAgICAgICAgICAgIHMgPSBzICsgJ0wnOwogICAgICAgICAgICByID0gci0+aXpxOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHMgPSBzICsgJ1InOwogICAgICAgICAgICByID0gci0+ZGVyOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAiTk8gRVhJU1RFIjsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgcTsKICAgIGlmICghKGNpbiA+PiBxKSkgcmV0dXJuIDA7CgogICAgTm9kbyAqcmFpeiA9IG51bGxwdHI7CiAgICBjaGFyIG9wZXJhY2lvbjsKICAgIGludCB4OwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcTsgaSsrKSB7CiAgICAgICAgY2luID4+IG9wZXJhY2lvbiA+PiB4OwoKICAgICAgICBpZiAob3BlcmFjaW9uID09ICdJJykgewogICAgICAgICAgICByYWl6ID0gaW5zZXJ0YXIocmFpeiwgeCk7CiAgICAgICAgfSBlbHNlIGlmIChvcGVyYWNpb24gPT0gJ1InKSB7CiAgICAgICAgICAgIHN0cmluZyByZXN1bHRhZG8gPSBidXNjYXIocmFpeiwgeCk7CiAgICAgICAgICAgIGNvdXQgPDwgcmVzdWx0YWRvIDw8ICJcbiI7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9