#include #include using namespace std; #define N 100005 int n,q; int ps[N],marked[N],dad[N],fq[N]; char op1[N]; int op2[N]; int find(int a) { if (dad[a]==a) return a; return dad[a]=find(dad[a]); } void unify(int a, int b) { dad[find(a)]=find(b); } int main() { memset(fq,-1,sizeof(fq)); scanf("%d%d",&n,&q); for (int i=0;i=0;--i){ if (op1[i]=='Q') ans+=find(op2[i])+1; else if (op1[i]=='M' && fq[op2[i]] == i) unify(op2[i],ps[op2[i]]); } printf("%lld\n",ans); }