#include <bits/stdc++.h>
using namespace std;
const int N=21;
typedef long long ll;
ll fac[N];
int a[N];
int b[N];
bool used[N];
int main()
{
    int n,k;
    cin>>n>>k;
    fac[0]=1;
    for(int i=1;i<=n;i++)fac[i]=fac[i-1]*i;

    while(k--)
    {
        char op;
        cin>>op;
        if(op=='P')
        {
            memset(used,false,sizeof(used));
            ll x;
            cin>>x;
            x--;
            ll res = 0;
            for(int i=1;i<=n;i++)
            {
                ll k = x/fac[n-i];
                for(int j=1;j<=n;j++)
                {
                    if(!used[j])
                    {
                        if(k==0)
                        {
                            res = j;
                            break;
                        }
                        k--;
                    }
                }
                cout<<res<<' ';
                x%=fac[n-i];
                used[res]=true;
            }
            cout<<endl;
        }
        else
        {
            ll ans = 0;
            for(int i=1;i<=n;i++)
            {
                cin>>a[i];
            }

            for(int i=1;i<=n;i++)
            {
                ll cnt=0;
                for(int j=i+1;j<=n;j++)
                {
                    if(a[i]>a[j])cnt++;
                }
                ans += cnt*fac[n-i];
            }
            ans ++;
            cout<<ans<<endl;
        }
    }
    return 0;
}

康托展开模板题,直接套上公式即可