#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 a[maxn] , 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 chi so tram nho nhat <= y va nguoi co do tuoi nho nhat x <= b
int get(int id , int l , int r , int b , int y){
// neu min node nay > b hoac doan[l , r] dang xet
if(seg[id] > b || y > r) return -1;
if(l == r) return l;
int mid = (l + r) / 2;
int res = get(2 * id, l , mid , b , y);
if(res == -1) return get(2 * id + 1 , mid + 1 , r , b , y);
return res;
}
int main(){
FAST;
int n , q;
cin >> n >> q;
FOR(i , 1 , n) a[i] = 1e18;
FOR(id , 1 , 4 * n) seg[id] = 1e18;
FOR(i , 1 , q){
char c;
cin >> c;
if(c == 'M'){
int x , a;
cin >> x >> a;
update(1 , 1 , n , a , x);
}
else{
int b , y;
cin >> b >> y;
cout << get(1 , 1 , n , b , y) << "\n";
}
}
}