#include <bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
freopen("ts3_input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int T;
double X;
cin>>T;
cin>>X;
double totalsum=0;
for(int te=1;te<=T;te++)
{
double W,E;
cin>>W>>E;
string ans="";
pair<double,int> dp[62][62][62];
dp[1][0][0]={W/3+E/3,0};
dp[0][1][0]={W/3+E/3,1};
dp[0][0][1]={W/3+E/3,2};
dp[1][1][0]={W/3+W+E/3,0};
dp[0][1][1]={W/3+W+E/3,1};
dp[1][0][1]={W/3+W+E/3,2};
for(int r=1;r<62;r++)
{
for(int p=1;p<62;p++)
{
for(int s=1;s<62;s++)
{
vector<double> v={dp[r-1][p][s].first+(W*p)/(r+p+s-1)+(E*s)/(r+p+s-1),
dp[r][p-1][s].first+(W*s)/(r+p+s-1)+(E*r)/(r+p+s-1),
dp[r][p][s-1].first+(W*r)/(r+p+s-1)+(E*p)/(r+p+s-1)};
//if(dp[r-1][p][s].first==-1.0 || dp[r][p-1][s].first==-1.0 || dp[r][p][s-1].first==-1.0)
// cout<<"fuck"<<endl;
dp[r][p][s].first=*max_element(v.begin(), v.end());
dp[r][p][s].second=distance(v.begin(),max_element(v.begin(), v.end()));
}
}
}
double maxi=0;
vector<int> indices={0,0,0};
for(int r=0;r<62;r++)
{
for(int p=0;p<62;p++)
{
for(int s=0;s<62;s++)
{
if(r+p+s==61 & dp[r][p][s].first>maxi)
{
maxi= dp[r][p][s].first;
indices[0]=r;
indices[1]=p;
indices[2]=s;
if(dp[indices[0]][indices[1]][indices[2]].second==0) indices[0]--;
else if(dp[indices[0]][indices[1]][indices[2]].second==1) indices[1]--;
else indices[2]--;
}
}
}
}
totalsum+=maxi;
//cout<<maxi<<endl;
for(int i=0;i<60;i++)
{ //cout<<dp[indices[0]][indices[1]][indices[2]].first<<endl;
//cout<<indices[0]<<" "<<indices[1]<<" "<<indices[2]<<endl;
/*if((indices[0] && indices[1] && indices[2])==0)
{
cout<<indices[0]<<" "<<indices[1]<<" "<<indices[2]<<endl;
}*/
if(dp[indices[0]][indices[1]][indices[2]].second==2)
{
ans.push_back('S');
indices[2]--;
}
else if(dp[indices[0]][indices[1]][indices[2]].second==1)
{
ans.push_back('P');
indices[1]--;
}
else if(dp[indices[0]][indices[1]][indices[2]].second==0)
{
ans.push_back('R');
indices[0]--;
}
}
reverse(ans.begin(),ans.end());
//cout<<ans.size()<<endl;
cout<<"Case #"<<te<<": "<<ans<<endl;
}
//cout<<(totalsum/200)<<" "<<X<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGRvdWJsZSBsb25nIGRvdWJsZQoKCnNpZ25lZCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7CiAgICBmcmVvcGVuKCJ0czNfaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICAvL2ZyZW9wZW4oIm91dHB1dC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICAKICAKICAgIGludCBUOwogICAgZG91YmxlIFg7CiAgICBjaW4+PlQ7CiAgICBjaW4+Plg7CiAgICBkb3VibGUgdG90YWxzdW09MDsKICAgIGZvcihpbnQgdGU9MTt0ZTw9VDt0ZSsrKQogICAgICAgIHsgICAKICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIGRvdWJsZSBXLEU7CiAgICAgICAgICAgIGNpbj4+Vz4+RTsKICAgICAgICAgICAgc3RyaW5nIGFucz0iIjsKICAgICAgICAgICAgcGFpcjxkb3VibGUsaW50PiBkcFs2Ml1bNjJdWzYyXTsKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICBkcFsxXVswXVswXT17Vy8zK0UvMywwfTsKICAgICAgICAgICAgZHBbMF1bMV1bMF09e1cvMytFLzMsMX07CiAgICAgICAgICAgIGRwWzBdWzBdWzFdPXtXLzMrRS8zLDJ9OwogICAgICAgICAgICBkcFsxXVsxXVswXT17Vy8zK1crRS8zLDB9OwogICAgICAgICAgICBkcFswXVsxXVsxXT17Vy8zK1crRS8zLDF9OwogICAgICAgICAgICBkcFsxXVswXVsxXT17Vy8zK1crRS8zLDJ9OwogIAoKCiAgICAgICAgICAgIGZvcihpbnQgcj0xO3I8NjI7cisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IoaW50IHA9MTtwPDYyO3ArKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBmb3IoaW50IHM9MTtzPDYyO3MrKykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZlY3Rvcjxkb3VibGU+IHY9e2RwW3ItMV1bcF1bc10uZmlyc3QrKFcqcCkvKHIrcCtzLTEpKyhFKnMpLyhyK3Arcy0xKSwKICAgICAgICAgICAgICAgICAgICAgICAgZHBbcl1bcC0xXVtzXS5maXJzdCsoVypzKS8ocitwK3MtMSkrKEUqcikvKHIrcCtzLTEpLAogICAgICAgICAgICAgICAgICAgICAgICBkcFtyXVtwXVtzLTFdLmZpcnN0KyhXKnIpLyhyK3Arcy0xKSsoRSpwKS8ocitwK3MtMSl9OwoKICAgICAgICAgICAgICAgICAgICAgICAgLy9pZihkcFtyLTFdW3BdW3NdLmZpcnN0PT0tMS4wIHx8IGRwW3JdW3AtMV1bc10uZmlyc3Q9PS0xLjAgfHwgZHBbcl1bcF1bcy0xXS5maXJzdD09LTEuMCkKICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgY291dDw8ImZ1Y2siPDxlbmRsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBkcFtyXVtwXVtzXS5maXJzdD0qbWF4X2VsZW1lbnQodi5iZWdpbigpLCB2LmVuZCgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZHBbcl1bcF1bc10uc2Vjb25kPWRpc3RhbmNlKHYuYmVnaW4oKSxtYXhfZWxlbWVudCh2LmJlZ2luKCksIHYuZW5kKCkpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZG91YmxlIG1heGk9MDsKICAgICAgICAgICAgdmVjdG9yPGludD4gaW5kaWNlcz17MCwwLDB9OwogICAgICAgICAgICBmb3IoaW50IHI9MDtyPDYyO3IrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGludCBwPTA7cDw2MjtwKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZm9yKGludCBzPTA7czw2MjtzKyspCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihyK3Arcz09NjEgJiBkcFtyXVtwXVtzXS5maXJzdD5tYXhpKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGk9IGRwW3JdW3BdW3NdLmZpcnN0OwogICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzWzBdPXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXNbMV09cDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1syXT1zOwogICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkcFtpbmRpY2VzWzBdXVtpbmRpY2VzWzFdXVtpbmRpY2VzWzJdXS5zZWNvbmQ9PTApIGluZGljZXNbMF0tLTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkcFtpbmRpY2VzWzBdXVtpbmRpY2VzWzFdXVtpbmRpY2VzWzJdXS5zZWNvbmQ9PTEpICBpbmRpY2VzWzFdLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICBpbmRpY2VzWzJdLS07CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB0b3RhbHN1bSs9bWF4aTsKICAgICAgICAgICAgLy9jb3V0PDxtYXhpPDxlbmRsOwogICAgICAgICAgICBmb3IoaW50IGk9MDtpPDYwO2krKykKICAgICAgICAgICAgICAgIHsgICAvL2NvdXQ8PGRwW2luZGljZXNbMF1dW2luZGljZXNbMV1dW2luZGljZXNbMl1dLmZpcnN0PDxlbmRsOwogICAgICAgICAgICAgICAgICAgIC8vY291dDw8aW5kaWNlc1swXTw8IiAiPDxpbmRpY2VzWzFdPDwiICI8PGluZGljZXNbMl08PGVuZGw7CiAgICAgICAgICAgICAgICAgICAgLyppZigoaW5kaWNlc1swXSAmJiBpbmRpY2VzWzFdICYmIGluZGljZXNbMl0pPT0wKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3V0PDxpbmRpY2VzWzBdPDwiICI8PGluZGljZXNbMV08PCIgIjw8aW5kaWNlc1syXTw8ZW5kbDsKICAgICAgICAgICAgICAgICAgICAgICAgfSovCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgaWYoZHBbaW5kaWNlc1swXV1baW5kaWNlc1sxXV1baW5kaWNlc1syXV0uc2Vjb25kPT0yKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnMucHVzaF9iYWNrKCdTJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzWzJdLS07CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKGRwW2luZGljZXNbMF1dW2luZGljZXNbMV1dW2luZGljZXNbMl1dLnNlY29uZD09MSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zLnB1c2hfYmFjaygnUCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNlc1sxXS0tOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZihkcFtpbmRpY2VzWzBdXVtpbmRpY2VzWzFdXVtpbmRpY2VzWzJdXS5zZWNvbmQ9PTApCiAgICAgICAgICAgICAgICAgICAgICAgIHsgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFucy5wdXNoX2JhY2soJ1InKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXNbMF0tLTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICByZXZlcnNlKGFucy5iZWdpbigpLGFucy5lbmQoKSk7CiAgICAgICAgICAgLy9jb3V0PDxhbnMuc2l6ZSgpPDxlbmRsOwogICAgICAgICAgIGNvdXQ8PCJDYXNlICMiPDx0ZTw8IjogIjw8YW5zPDxlbmRsOwogICAgICAgfQogICAgICAgLy9jb3V0PDwodG90YWxzdW0vMjAwKTw8IiAiPDxYPDxlbmRsOwoKICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAKICAgIAogICAgCiAgICAKICAgIAogICAgcmV0dXJuIDA7Cn0KCgo=