#include <bits/stdc++.h>
using namespace std;
struct node {
int l, r, sum;
node *left, *right;
node(int low, int high)
{
l = low;
r = high;
sum = (high - low + 1);
left = NULL;
right = NULL;
}
void extend()
{
if (left == NULL) {
int mid = (l + r) >> 1;
left = new node(l, mid);
right = new node(mid + 1, r);
}
}
};
node* Root;
void updateSegTree(int index, int delta, node* root)
{
if (index < root->l || index > root->r)
return;
if (root->l == root->r) {
root->sum += delta;
return;
}
root->extend();
updateSegTree(index, delta, root->left);
updateSegTree(index, delta, root->right);
root->sum = (root->left)->sum + (root->right)->sum;
}
int query(int k, node* root)
{
if (root->l == root->r)
return root->l;
root->extend();
if ((root->left)->sum >= k)
return query(k, root->left);
return query(k - ((root->left)->sum), root->right);
}
int main()
{
int n, m, num;
char op;
scanf("%d%d", &n, &m);
Root = new node(1, n);
for (int i = 1; i <= m; i++) {
scanf(" %c %d", &op, &num);
int q = query(num, Root);
if (op == 'L')
printf("%d\n", q);
else
updateSegTree(q, -1, Root);
}
return 0;
}