#include <bits/stdc++.h>
using namespace std;
vector<string> a;
int n;
string res;
bool check(string pre, string suf) {
  res = "";
  string s = pre + suf.substr(n - 2);
  multiset<string> vv, sPre, sSuf;
  for (int i = 0; i < n - 1; i++) {
    sPre.insert(s.substr(0, n - i - 1));
    vv.insert(s.substr(0, n - i - 1));
    sSuf.insert(s.substr(i + 1));
    vv.insert(s.substr(i + 1));
  }
  if (vv == multiset<string>(a.begin(), a.end())) {
    for (auto str : a) {
      if (sPre.count(str)) {
        res += "P";
        sPre.erase(sPre.find(str));
      } else if (sSuf.count(str)) {
        res += "S";
        sSuf.erase(sSuf.find(str));
      } else
        return false;
    }
    return true;
  }
  return false;
}
int main() {
  cin >> n;
  a = vector<string>(2 * n - 2);
  vector<string> b;
  for (int i = 0; i < 2 * n - 2; i++) {
    string s;
    cin >> s;
    if (s.length() == n - 1) {
      b.push_back(s);
    }
    a[i] = (s);
  }
  if (check(b[0], b[1])) {
    cout << res << endl;
  } else {
    check(b[1], b[0]);
    cout << res << endl;
  }
  return 0;
}
