import kotlin.math.min
import kotlin.math.max
private fun cin_ch() = readLine()!!.split(" ").map{it.toInt()}
private fun cin_array() = readLine()!!.split(" ").map(String::toLong)
private fun cin_string() = readLine()!!.split(" ")
fun main() {
var n = cin_ch()[0];
val MyArray = ArrayList<String> ();
val MiArray = ArrayList<Int> ();
var x = 2 * n - 2;
var x1 : String = "";
var x2 : String = "";
var ans1 : String = "";
var ans2 : String = "";
var cur1 : String = "";
var cur2 : String = "";
var ii : Int = 0;
for (i in 0..n)
MiArray.add(0);
while (x > 0) {
var ss = cin_string()[0];
if (ss.count() == n - 1) {
if (x1.count() == 0) x1 = ss;
else x2 = ss;
}
if (MiArray[ss.count() - 1] == 0) MiArray[ss.count() - 1] = ii + 1;
MyArray.add(ss)
ii = ii + 1
x = x - 1;
}
cur1 = x1 + x2[n - 2];
var kol1 : Int = 0;
var kol2 : Int = 0;
for (i in 0..2 * n - 3) {
var uu = MyArray[i];
if (cur1.substring(0,uu.count()) == uu) {
if (MiArray[uu.count() - 1] - 1 != i && ans1[MiArray[uu.count() - 1] - 1] == 'P') ans1+='S';
else
ans1+='P';
}
else if (cur1.substring(n - uu.count(),n) == uu) {
ans1+='S';
}
else {kol1 = 1;break;}
}
if (kol1 == 0) {
println(ans1);
return;}
cur2 = x2 + x1[n - 2];
for (i in 0..2 * n - 3) {
var uu = MyArray[i];
if (cur2.substring(0,uu.count()) == uu) {
if (MiArray[uu.count() - 1] - 1 != i && ans2[MiArray[uu.count() - 1] - 1] == 'P') ans2+='S';
else
ans2+='P';
}
else {
ans2+='S';
}
}
println(ans2);
return;
}
aW1wb3J0IGtvdGxpbi5tYXRoLm1pbgppbXBvcnQga290bGluLm1hdGgubWF4CmltcG9ydCBrb3RsaW4ubWF0aC5zcXJ0CmltcG9ydCBrb3RsaW4ubWF0aC5hYnMKIApwcml2YXRlIGZ1biBjaW5fY2goKSA9IHJlYWRMaW5lKCkhIS5zcGxpdCgiICIpLm1hcHtpdC50b0ludCgpfQpwcml2YXRlIGZ1biBjaW5fYXJyYXkoKSA9IHJlYWRMaW5lKCkhIS5zcGxpdCgiICIpLm1hcChTdHJpbmc6OnRvTG9uZykKcHJpdmF0ZSBmdW4gY2luX3N0cmluZygpID0gcmVhZExpbmUoKSEhLnNwbGl0KCIgIikKIApmdW4gbWFpbigpIHsKdmFyIG4gPSBjaW5fY2goKVswXTsKdmFsIE15QXJyYXkgPSBBcnJheUxpc3Q8U3RyaW5nPiAoKTsKdmFsIE1pQXJyYXkgPSBBcnJheUxpc3Q8SW50PiAoKTsKdmFyIHggPSAyICogbiAtIDI7CnZhciB4MSA6IFN0cmluZyA9ICIiOwp2YXIgeDIgOiBTdHJpbmcgPSAiIjsKdmFyIGFuczEgOiBTdHJpbmcgPSAiIjsKdmFyIGFuczIgOiBTdHJpbmcgPSAiIjsKdmFyIGN1cjEgOiBTdHJpbmcgPSAiIjsKdmFyIGN1cjIgOiBTdHJpbmcgPSAiIjsKdmFyIGlpIDogSW50ID0gMDsKZm9yIChpIGluIDAuLm4pCk1pQXJyYXkuYWRkKDApOwp3aGlsZSAoeCA+IDApIHsKdmFyIHNzID0gY2luX3N0cmluZygpWzBdOwppZiAoc3MuY291bnQoKSA9PSBuIC0gMSkgewppZiAoeDEuY291bnQoKSA9PSAwKSB4MSA9IHNzOwplbHNlIHgyID0gc3M7Cn0KaWYgKE1pQXJyYXlbc3MuY291bnQoKSAtIDFdID09IDApIE1pQXJyYXlbc3MuY291bnQoKSAtIDFdID0gaWkgKyAxOwpNeUFycmF5LmFkZChzcykKaWkgPSBpaSArIDEKeCA9IHggLSAxOwp9CmN1cjEgPSB4MSArIHgyW24gLSAyXTsKdmFyIGtvbDEgOiBJbnQgPSAwOwp2YXIga29sMiA6IEludCA9IDA7CmZvciAoaSBpbiAwLi4yICogbiAtIDMpIHsKdmFyIHV1ID0gTXlBcnJheVtpXTsKaWYgKGN1cjEuc3Vic3RyaW5nKDAsdXUuY291bnQoKSkgPT0gdXUpIHsKaWYgKE1pQXJyYXlbdXUuY291bnQoKSAtIDFdIC0gMSAhPSBpICYmIGFuczFbTWlBcnJheVt1dS5jb3VudCgpIC0gMV0gLSAxXSA9PSAnUCcpIGFuczErPSdTJzsKZWxzZSAKYW5zMSs9J1AnOwp9CmVsc2UgaWYgKGN1cjEuc3Vic3RyaW5nKG4gLSB1dS5jb3VudCgpLG4pID09IHV1KSB7CmFuczErPSdTJzsKfQplbHNlIHtrb2wxID0gMTticmVhazt9Cn0KaWYgKGtvbDEgPT0gMCkgewpwcmludGxuKGFuczEpOwpyZXR1cm47fQpjdXIyID0geDIgKyB4MVtuIC0gMl07CmZvciAoaSBpbiAwLi4yICogbiAtIDMpIHsKdmFyIHV1ID0gTXlBcnJheVtpXTsKaWYgKGN1cjIuc3Vic3RyaW5nKDAsdXUuY291bnQoKSkgPT0gdXUpIHsKaWYgKE1pQXJyYXlbdXUuY291bnQoKSAtIDFdIC0gMSAhPSBpICYmIGFuczJbTWlBcnJheVt1dS5jb3VudCgpIC0gMV0gLSAxXSA9PSAnUCcpIGFuczIrPSdTJzsKZWxzZSAKYW5zMis9J1AnOwp9CmVsc2UgewphbnMyKz0nUyc7Cn0KfQpwcmludGxuKGFuczIpOwpyZXR1cm47Cn0=