#include <bits/stdc++.h>
using namespace std;
int BIT[400001];
void update(int i, int val) {
  ++i;
  while (i <= 400001) {
    BIT[i] += val;
    i += (i & -i);
  }
}
int query(int i) {
  ++i;
  int res = 0;
  while (i > 0) {
    res += BIT[i];
    i -= (i & -i);
  }
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int q;
  cin >> q;
  std::vector<int> v(400001, 0);
  map<int, int> left_map;
  char c;
  int id;
  cin >> c >> id;
  q--;
  int l_idx = 200000;
  int r_idx = 200000;
  update(l_idx, 1);
  left_map[id] = l_idx;
  --l_idx;
  ++r_idx;
  int num_books = 1;
  while (q--) {
    cin >> c >> id;
    if (c == 'L') {
      ++num_books;
      update(l_idx, 1);
      left_map[id] = l_idx;
      --l_idx;
    } else if (c == 'R') {
      ++num_books;
      update(r_idx, 1);
      left_map[id] = r_idx;
      ++r_idx;
    } else {
      int sumleft = query(left_map[id]) - 1;
      int sumright = num_books - query(left_map[id]);
      cout << min(sumleft, sumright) << '\n';
    }
  }
}
