#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
int seg[4*N];
void upd(int now, int l, int r, int idx, int val){
if(l > r) return;
if(l == r){
seg[now] = min(seg[now], val);
return;
}
int mid = (l+r)>>1;
if(idx <= mid) upd(now*2, l, mid, idx, val);
else upd(now*2+1, mid+1, r, idx, val);
seg[now] = min(seg[now*2], seg[now*2+1]);
}
int query(int now, int l, int r, int ql, int qr){
if(l > r || l > qr || r < ql) return INT_MAX;
if(ql <= l && r <= qr) return seg[now];
int mid = (l+r)>>1;
return min(query(now*2, l, mid, ql, qr), query(now*2+1, mid+1, r, ql, qr));
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n, q;
cin >> n >> q;
memset(seg, 0x3f, sizeof seg);
while(q--){
char op;
int station, idx;
cin >> op >> station >> idx;
if(op == 'M'){
upd(1, 1, n, idx, station);
}else{
int l = idx, r = n+1;
while(l < r){
int mid = (l+r)>>1;
if(query(1, 1, n, idx, mid) <= station) r = mid;
else l = mid+1;
}
cout << (l == n+1 ? -1 : l) << '\n';
}
}
}