#include<bits/stdc++.h>
using namespace std;
int res1,res2;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int T;cin>>T;
while(T--)
{
deque<string>s;
int n;cin>>n;res2=n/2;
while(n--)
{
string op,name;cin>>op>>name;
if(op=="in") s.push_back(name);
else
{
if(s.front()!=name)
{
res1++;
auto it=find(s.begin(),s.end(),name);
s.erase(it);
}
else s.pop_front();
}
}
cout<<res2-res1;
}
}
#include<bits/stdc++.h>
using namespace std;
int main(){
int t,n;
cin>>t;
while(t--)
{
int j=0;
queue<string>dl;
map<string,int>mp;
cin>>n;
for(int i=0;i<n;i++){
string x,r;
cin>>x;
cin>>r;
if(x=="in")dl.push(r),mp[r]=0;
else {
while(mp[dl.front()]==1)dl.pop();//头出去后,把头和插队的一次性清理。
if(r==dl.front())j++; //头部出了才是没插队。
mp[r]=1; //要出去了标1,下次出
}
}
cout<<j<<"\n";
}
}