#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <sstream>
#include <iomanip>
#include <fstream>
#include <bitset>
#include <queue>
#include <deque>
#include <cmath>
#include <list>
#include <numeric> // accumulate
#include <algorithm>
#include <iterator>
#include <utility> // std::pair, std::make_pair
#include <stdlib.h> //atoi
#include <stdlib.h> //atol
#include<unordered_map>
using namespace std;
typedef long long ll;
const double PI = 3.141592654;
#define rep(i,x) for(ll(i)=0;(i)<(ll)(x);(i)++)
#define all(s) (s).begin(),(s).end()
#define allv(v) (v).begin(),(v).end()
#define pb push_back
#define sz s.size()
unordered_map<string, ll>se;
ll n, m, x, cnt = 0,nn=0;
//x = atoi(a.c_str());
//y = atoi(b.c_str());
//set<int>::iterator it;
/*freopen("", "r", stdin);
freopen("", "w", stdout);*/
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(NULL), cout.tie(NULL);
vector<pair<int, char>>v;
vector<pair<int, char>>vv;
int t, a;
char b;
cin >> t;
while (t--)
{
cin >> a >> b;
if (b == 'R')
v.pb(make_pair(a, b));
else
vv.pb(make_pair(a, b));
}
int c = 0;
if (v.size() > vv.size())
{
rep(i, vv.size())
{
rep(j, v.size())
{
if (vv[i].first == v[j].first && vv[i].second != v[j].second)
{
c++;
v[j].first = -1;
v[j].second = '0';
break;
}
}
}
}
else
{
rep(i, v.size())
{
rep(j, vv.size())
{
if (v[i].first == vv[j].first && v[i].second != vv[j].second)
{
c++;
vv[j].first = -1;
vv[j].second = '0'; // Accepted ^_^
break;
}
}
}
}
cout << c << endl;
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGZzdHJlYW0+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGRlcXVlPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8bnVtZXJpYz4gICAvLyBhY2N1bXVsYXRlCiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxpdGVyYXRvcj4KI2luY2x1ZGUgPHV0aWxpdHk+ICAgLy8gc3RkOjpwYWlyLCBzdGQ6Om1ha2VfcGFpcgojaW5jbHVkZSA8c3RkbGliLmg+ICAvL2F0b2kKI2luY2x1ZGUgPHN0ZGxpYi5oPiAgLy9hdG9sCiNpbmNsdWRlPHVub3JkZXJlZF9tYXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCAgZG91YmxlIFBJID0gMy4xNDE1OTI2NTQ7CiNkZWZpbmUgcmVwKGkseCkgZm9yKGxsKGkpPTA7KGkpPChsbCkoeCk7KGkpKyspCiNkZWZpbmUgYWxsKHMpICAgICAgKHMpLmJlZ2luKCksKHMpLmVuZCgpCiNkZWZpbmUgYWxsdih2KSAgICAgICh2KS5iZWdpbigpLCh2KS5lbmQoKQojZGVmaW5lIHBiICAgICAgICAgIHB1c2hfYmFjawojZGVmaW5lIHN6ICAgICAgICAgIHMuc2l6ZSgpCnVub3JkZXJlZF9tYXA8c3RyaW5nLCBsbD5zZTsKbGwgbiwgbSwgeCwgY250ID0gMCxubj0wOwovL3ggPSBhdG9pKGEuY19zdHIoKSk7Ci8veSA9IGF0b2koYi5jX3N0cigpKTsKLy9zZXQ8aW50Pjo6aXRlcmF0b3IgaXQ7CgovKmZyZW9wZW4oIiIsICJyIiwgc3RkaW4pOwpmcmVvcGVuKCIiLCAidyIsIHN0ZG91dCk7Ki8KaW50IG1haW4oKQp7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwoJY2luLnRpZShOVUxMKSwgY291dC50aWUoTlVMTCk7Cgl2ZWN0b3I8cGFpcjxpbnQsIGNoYXI+PnY7Cgl2ZWN0b3I8cGFpcjxpbnQsIGNoYXI+PnZ2OwoJaW50IHQsIGE7CgljaGFyIGI7CgljaW4gPj4gdDsKCXdoaWxlICh0LS0pCgl7CgkJY2luID4+IGEgPj4gYjsKCQlpZiAoYiA9PSAnUicpCgkJCXYucGIobWFrZV9wYWlyKGEsIGIpKTsKCQllbHNlCgkJCXZ2LnBiKG1ha2VfcGFpcihhLCBiKSk7Cgl9CglpbnQgYyA9IDA7CglpZiAodi5zaXplKCkgPiB2di5zaXplKCkpCgl7CgkJcmVwKGksIHZ2LnNpemUoKSkKCQl7CgkJCXJlcChqLCB2LnNpemUoKSkKCQkJewoJCQkJaWYgKHZ2W2ldLmZpcnN0ID09IHZbal0uZmlyc3QgJiYgdnZbaV0uc2Vjb25kICE9IHZbal0uc2Vjb25kKQoJCQkJewoJCQkJCWMrKzsKCQkJCQl2W2pdLmZpcnN0ID0gLTE7CgkJCQkJdltqXS5zZWNvbmQgPSAnMCc7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9CgllbHNlCgl7CgkJcmVwKGksIHYuc2l6ZSgpKQoJCXsKCQkJcmVwKGosIHZ2LnNpemUoKSkKCQkJewoJCQkJaWYgKHZbaV0uZmlyc3QgPT0gdnZbal0uZmlyc3QgJiYgdltpXS5zZWNvbmQgIT0gdnZbal0uc2Vjb25kKQoJCQkJewoJCQkJCWMrKzsKCQkJCQl2dltqXS5maXJzdCA9IC0xOwoJCQkJCXZ2W2pdLnNlY29uZCA9ICcwJzsgICAgICAvLyAgQWNjZXB0ZWQgXl9eCgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQl9Cgl9Cgljb3V0IDw8IGMgPDwgZW5kbDsKCXJldHVybiAwOwp9