///////////////////////////////////////////////////////////////////////
//Inversion
//逆序数序与其求原序
#include<iostream>
#include<string>
using namespace std;
char nor[100];
long shuru[10000];
long chu[10000];
long i,j,k,jishu;
void perm(int n)
{
jishu=0;
for(i=0;i<n;i++)
cin>>shuru[i];
for(i=0;i<n;i++) //各个数字的输出
{
for(j=0;j<n;j++) //一个数字前有几个大数
{
if(shuru[j]>i+1)
jishu++;
else if(shuru[j]==i+1)
break;
}
cout<<jishu;
if(i!=n-1)
cout<<" ";
jishu=0;
}
}
void inv(int n)
{
int temp;
for(i=0;i<n;i++)
cin>>shuru[i];
for(j=0;j<n;j++)
chu[j]=n-j;
for(i=0;i<n;i++) //这循环让n个数都作一次交换
{
jishu=0;
for(k=n-1;k>=0;k--)
{
if(chu[k]==i+1)
break;
}
j=0;
do{ //这循环交换第i个数字与其合适的位置
if(jishu==shuru[i]&&chu[j]>chu[k] && j<k)
{
temp=chu[j];
chu[j]=chu[k];
chu[k]=temp;
break;
}
if(chu[j]>chu[k] && jishu<=shuru[i])
{
jishu++;
}
j++;
if(chu[j]>chu[k] && jishu==shuru[i]-1 && k<j)
{
temp=chu[j];
chu[j]=chu[k];
chu[k]=temp;
break;
}
}while(j<n);
}
for(i=0;i<n;i++)
{
cout<<chu[i];
if(i!=n-1)
cout<<" ";
}
}
int main()
{
int n;
while(cin>>n)
{
if(n==0)
return 0;
cin>>nor;
if(strcmp(nor,"P")==0)
perm(n);
else
inv(n);
cout<<endl;
}
return 0;
}