
#include<bits/stdc++.h>
#define int long long
struct node{
int w;
bool flag;
}a[50005];
int n, L, R;
std::string s;
int Ans;
bool cmp(node x, node y) {
return x.w < y.w;
}
signed main() {
std::cin >> n >> L >> R;
for(int i = 1; i <= n; i ++) {
std::cin >> s >> a[i].w;
if(s == "S") a[i].flag = true;
}
if(n == 1 && a[1].flag) {
std::cout << R - L + 1;
return 0;
}
std::sort(a + 1, a + 1 + n, cmp);
for(int i = 1; i <= n; i ++) {
if(i == 1 && a[i].flag) {
Ans += a[i].w - L;
Ans += (a[i + 1].w + a[i].w >> 1) - a[i].w + 1;
}
else if(i == n && a[i].flag) {
Ans += R - a[i].w;
if((a[i - 1].w + a[i].w) & 1) Ans += a[i].w - ((a[i - 1].w + a[i].w >> 1) + 1) + 1;
else {
if(a[i - 1].flag) Ans += a[i].w - ((a[i - 1].w + a[i].w >> 1) + 1) + 1;
else Ans += a[i].w - (a[i - 1].w + a[i].w >> 1) + 1;
}
}
else if(a[i].flag) {
if((a[i - 1].w + a[i].w) & 1) Ans += (a[i + 1].w + a[i].w >> 1) - ((a[i - 1].w + a[i].w >> 1) + 1) + 1;
else {
if(a[i - 1].flag) Ans += (a[i + 1].w + a[i].w >> 1) - ((a[i - 1].w + a[i].w >> 1) + 1) + 1;
else Ans += (a[i + 1].w + a[i].w >> 1) - (a[i - 1].w + a[i].w >> 1) + 1;
}
}
}
std::cout << Ans;
return 0;
}
20pts