#include <bits/stdc++.h>
using namespace std;
int n;
char color[16];
int r[16], b[16];
int redCount[1 << 16], blueCount[1 << 16];
int dp[1 << 16][2][257];
int calc(int mask, bool noRed, int other) {
  other = min(other, n * n);
  if (dp[mask][noRed][other] != -1) return dp[mask][noRed][other];
  if (mask == (1 << n) - 1) return dp[mask][noRed][other] = 0;
  dp[mask][noRed][other] = 1000000000;
  for (int i = 0; i < n; ++i) {
    if (mask & (1 << i)) continue;
    int nextMask = mask | (1 << i);
    int payRed = max(0, r[i] - redCount[mask]),
        payBlue = max(0, b[i] - blueCount[mask]);
    int haveRed = 0, haveBlue = 0;
    if (noRed)
      haveBlue = other;
    else
      haveRed = other;
    int add = max(max(payRed - haveRed, payBlue - haveBlue), 0);
    haveRed += add, haveBlue += add;
    haveRed -= payRed, haveBlue -= payBlue;
    if (haveRed == 0)
      dp[mask][noRed][other] =
          min(dp[mask][noRed][other], add + calc(nextMask, 1, haveBlue));
    else if (haveBlue == 0)
      dp[mask][noRed][other] =
          min(dp[mask][noRed][other], add + calc(nextMask, 0, haveRed));
  }
  return dp[mask][noRed][other];
}
int main() {
  cin >> n;
  for (int i = 0; i < n; ++i) cin >> color[i] >> r[i] >> b[i];
  for (int i = 0; i < 1 << n; ++i) {
    for (int j = 0; j < n; ++j) {
      if ((i & (1 << j)) == 0) continue;
      if (color[j] == 'R')
        redCount[i]++;
      else
        blueCount[i]++;
    }
    for (int j = 0; j < 2; ++j)
      for (int k = 0; k <= 256; ++k) dp[i][j][k] = -1;
  }
  int needRed = 0, needBlue = 0;
  for (int i = 0; i < n; ++i) {
    needRed += max(0, r[i] - n);
    needBlue += max(0, b[i] - n);
    r[i] = min(r[i], n);
    b[i] = min(b[i], n);
  }
  if (needRed >= needBlue)
    cout << needRed + n + calc(0, 1, needRed - needBlue);
  else
    cout << needBlue + n + calc(0, 0, needBlue - needRed);
  cout << "\n";
}
