#include <bits/stdc++.h>
using namespace std;
int N;
long long gMin = 1e12, gMax = -1e12, rMin = 1e12, rMax = -1e12, bMin = 1e12,
          bMax = -1e12, lasty = -1e12, ret = 0;
vector<long long> notGreen[2];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout << fixed << setprecision(18);
  cin >> N;
  for (int i = 0; i <= N; i++) {
    long long x = 1e12;
    char c = 'G';
    if (i < N) cin >> x >> c;
    if (c == 'G') {
      if (i < N) {
        gMin = min(gMin, x);
        gMax = max(gMax, x);
      }
      long long add1 = x - lasty, add2 = add1 * 2;
      if (add1 >= 1e10) add1 = 0;
      for (int j = 0; j < 2; j++) {
        if (notGreen[j].size() == 0) continue;
        add1 += x - lasty;
        long long maxi =
            max(notGreen[j].front() - lasty, x - notGreen[j].back());
        for (int k = 0; k < notGreen[j].size() - 1; k++)
          maxi = max(maxi, notGreen[j][k + 1] - notGreen[j][k]);
        add1 -= maxi;
        notGreen[j] = vector<long long>();
      }
      ret += min(add1, add2);
      lasty = x;
    } else if (c == 'R') {
      notGreen[0].push_back(x);
      rMin = min(rMin, x);
      rMax = max(rMax, x);
    } else {
      notGreen[1].push_back(x);
      bMin = min(bMin, x);
      bMax = max(bMax, x);
    }
  }
  if (gMin > gMax) ret = max(0ll, rMax - rMin) + max(0ll, bMax - bMin);
  cout << ret << '\n';
  return 0;
}
