#include<bits/stdc++.h>
using namespace std;
const int nx = 2e5+5, inf = 2e9;
int n,q,a[nx];
struct segtree
{
int mn[nx*4];
void init(int l, int r, int i)
{
if(l==r) return mn[i]=a[l], void();
int md = (l+r)/2;
init(l,md,i*2);
init(md+1,r,i*2+1);
mn[i] = min(mn[i*2],mn[i*2+1]);
}
void update(int l, int r, int i, int idx, int val)
{
if(l==r) return mn[i]=val, void();
int md = (l+r)/2;
if(idx <= md) update(l,md,i*2,idx,val);
else update(md+1,r,i*2+1,idx,val);
mn[i] = min(mn[i*2],mn[i*2+1]);
}
int query(int l, int r, int i, int b, int y)
{
if(r < b || mn[i] > y) return -1;
if(l==r) return l;
int md = (l+r)/2;
int left = query(l,md,i*2,b,y);
if(left!=-1) return left;
else return query(md+1,r,i*2+1,b,y);
}
} s;
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
cin>>n>>q;
for(int i = 1; i <= n; i++) a[i] = inf;
s.init(1,n,1);
while(q--)
{
char t; cin>>t;
int u,v; cin>>u>>v;
if(t=='M') a[v]=u, s.update(1,n,1,v,u);
else
{
int res = s.query(1,n,1,v,u);
cout<<res<<'\n';
}
}
}