#include<bits/stdc++.h>
using namespace std;
vector<int> st;
void update(int l, int r, int i, int to, int x){
if(l == r){
st[x] = to;
return;
}
int mid = (l + r) / 2;
if(i <= mid) update(l, mid, i, to, 2 * x + 1);
else update(mid + 1, r, i, to, 2 * x + 2);
st[x] = min(st[2 * x + 1], st[2 * x + 2]);
}
int query(int lq, int rq, int l, int r, int y, int x){
if(st[x] > y) return -1;
if(lq > r || l > rq) return -1;
if(lq <= l && r <= rq){
if(st[x] > y) return -1;
if(l == r) return l;
int mid = (l + r) / 2;
if(st[2 * x + 1] <= y) return query(lq, rq, l, mid, y, 2 * x + 1);
return query(lq, rq, mid + 1, r, y, 2 * x + 2);
}
int mid = (l + r) / 2;
int a = query(lq, rq, l, mid, y, 2 * x + 1);
if(a != -1) return a;
return query(lq, rq, mid + 1, r, y, 2 * x + 2);
}
int main(){
int n, q;
cin >> n >> q;
st.resize(4 * n + 4, INT_MAX);
while(q--){
char t;
cin >> t;
if(t == 'M'){
int x, i;
cin >> x >> i;
update(0, n, i, x, 0);
}
else{
int y, i;
cin >> y >> i;
cout << query(i, n, 0, n, y, 0) << "\n";
}
}
}