#include<iostream>
using namespace std;
int n,q;
int par[110],Rank[110];
void init()
{
	int i;
    for(i=0;i<110;i++)
    {
        par[i]=i;
        Rank[i]=0;
    }
    Rank[1]=1;
}
int MV(int t)
{
    if(t==1)
        return 1;
    else
        return(t+MV(par[t]));
}
void QV(int t)
{
    cout<<par[t]<<endl;
}
int main()
{
    char f;
    init();
	//freopen("text.txt","r",stdin);
	cin>>n>>q;
	for(int i=2;i<=n;i++)
	{
	    cin>>par[i];
	    Rank[i]=Rank[par[i]]+1;
	}
	for(int i=1;i<=q;i++)
	{
	    int a;
	    cin>>f>>a;
	    if(f=='Q')
            QV(a);
        else if(f=='M')
            cout<<MV(a)<<endl;
	}
	cout<<"0 0"<<endl;
	return 0;
}
