#include <bits/stdc++.h>
using namespace std;
const int NMax = 310;
int N, A[NMax], leftmost, rightmost;
vector<int> Q;
int main() {
  scanf("%d", &N);
  leftmost = 10000;
  for (int i = 1; i <= N; i++) {
    scanf("%d", A + i);
    if (A[i]) {
      leftmost = min(leftmost, i);
      rightmost = max(rightmost, i);
    }
  }
  for (int i = 2; i <= leftmost; i++) Q.push_back(2);
  int p = leftmost, flag = 0;
  while (1) {
    if (leftmost == rightmost && A[p]) {
      if (p > 1) {
        for (int i = 1; i <= A[p]; i++) {
          Q.push_back(3);
          Q.push_back(1);
          Q.push_back(2);
        }
      } else {
        for (int i = 1; i <= A[p]; i++) {
          Q.push_back(3);
          Q.push_back(2);
          Q.push_back(1);
        }
      }
      break;
    }
    if (p == rightmost) flag = 1;
    if (p == leftmost) flag = 0;
    if (A[p]) {
      Q.push_back(3);
      A[p]--;
      if (!A[p]) {
        if (p == leftmost) {
          flag = 0;
          while (!A[p] && p < N) Q.push_back(2), leftmost++, p++;
        }
        if (p == rightmost) {
          flag = 1;
          while (!A[p] && p > 1) Q.push_back(1), rightmost--, p--;
        }
      }
    }
    if (leftmost > rightmost) break;
    if (flag == 0 && p < rightmost)
      Q.push_back(2), p++;
    else if (flag && p > leftmost)
      Q.push_back(1), p--;
  }
  for (int i = 0; i < Q.size(); i++) {
    if (Q[i] == 1) printf("L");
    if (Q[i] == 2) printf("R");
    if (Q[i] == 3) printf("P");
  }
  puts("");
  return 0;
}
