#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define FOR(i , a , b) for(int i = a ; i <= b; i++)
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define maxn 200005
ll seg[4 * maxn];
void update(int id , int l , int r , int pos , ll val){
if(pos < l || pos > r) return;
if(l == r){
seg[id] = min(seg[id] , val);
return;
}
int mid = (l + r) / 2;
if(pos <= mid) update(2 * id , l , mid, pos , val);
else update(2 * id + 1 , mid + 1 , r , pos , val);
seg[id] = min(seg[2 * id] , seg[2 * id + 1]);
}
// tim tuoi nho nhat sao cho >= b va tram nho nhat can tim <= y
// walking on segment tree
int query(int id , int l , int r , int y , int b){
if(seg[id] >= y || r < b) return -1;
if(l == r) return l;
int mid = (l + r) / 2;
int res = query(2 * id , l , mid , y , b);
if(res == -1) return query(2 * id + 1 , mid + 1 , r , y , b);
return res;
}
int main(){
FAST;
int n , q;
cin >> n >> q;
FOR(i , 1 , 4 * n) seg[i] = 1e18;
FOR(i , 1, q){
char c;
cin >> c;
if(c == 'M'){
int x , a;
cin >> x >> a;
// x la tram xe, a la tuoi
update(1 , 1 , n , a , x);
}
else{
int y , b;
cin >> y >> b;
// y la tram , b la tuoi
cout << query(1 , 1 , n , y , b) << "\n";
}
}
}