#include <bits/stdc++.h>
using namespace std;
const int Maxn = 1e5 + 3,Maxm = 1e5 + 3;
int Father[Maxn];
char Num_C[Maxn];
int NNN[8];
int Numm = 0;
int Ans = 0;
int F(int Num)
{
if(Father[Num] <= 0)
{
return Father[Num];
}
if(Father[Num] == Num)
{
return Num;
}
return Father[Num] = F(Father[Num]);
}
void Print()
{
Numm += 1;
Ans = 0;
memset(Father,0,sizeof(Father));
memset(Num_C,0,sizeof(Num_C));
int N,M;
cin >> N >> M;
for(int i = 1;i <= N;i++)
{
Father[i] = i;
Num_C[i] = 0;
}
for(int i = 1;i <= M;i++)
{
char A;
int X1,X2;
cin >> A;
if(A == 'F' || A == 'U' || A == 'T')
{
cin >> X1;
if(A == 'T')
{
Father[X1] = -1;
}else if(A == 'F')
{
Father[X1] = -2;
}else if(A == 'U')
{
Father[X1] = -3;
}
}else
{
cin >> X1 >> X2;
if(A == '+')
{
Father[X1] = F(X2);
Num_C[X1] = '+';
}else
{
Father[X1] = F(X2);
Num_C[X1] = '-';
}
}
}
for(int i = 1;i <= N;i++)
{
int C = F(i);
if(C == -3)
{
Ans++;
}
if(C >= 0)
{
if(Num_C[C] == '-')
{
Ans++;
}
}
}
NNN[Numm] = Ans;
}
int main()
{
int C,T;
scanf("%d %1d",&C,&T);
for(int O = 1;O <= T;O++)
{
Print();
}
for(int i = 1;i <= Numm;i++)
{
cout << NNN[i] << " ";
}
}