#include <bits/stdc++.h>
using namespace std;
template <class T>
bool ckmin(T &a, const T &b) {
  return a > b ? a = b, 1 : 0;
}
template <class T>
bool ckmax(T &a, const T &b) {
  return a < b ? a = b, 1 : 0;
}
void read(vector<long long int> &a, int n) {
  a.resize(n);
  for (int i = 0; i < n; i++) cin >> a[i];
}
bool fine = 0;
vector<long long int> a, b;
long long int n, m;
void solve() {
  cin >> n;
  string ans = "";
  read(a, n);
  int curr = -1;
  int l = 0, r = n - 1;
  while ((curr < a[l] || curr < a[r]) && l <= r) {
    if (curr < a[l] && curr < a[r]) {
      if (a[l] < a[r]) {
        curr = a[l];
        ans += 'L';
        l++;
      } else {
        if (a[r] < a[l]) {
          curr = a[r];
          ans += 'R';
          r--;
        } else {
          int left_pointer = l;
          int right_pointer = r;
          while (left_pointer < r && a[left_pointer + 1] > a[left_pointer]) {
            left_pointer++;
          }
          while (right_pointer > l && a[right_pointer - 1] > a[right_pointer]) {
            right_pointer--;
          }
          if (r - right_pointer >= left_pointer - l) {
            ans += 'R';
            curr = a[r];
            r--;
          } else {
            ans += 'L';
            curr = a[l];
            l++;
          }
        }
      }
      continue;
    }
    if (a[l] > curr) {
      ans += 'L';
      curr = a[l];
      l++;
      continue;
    }
    if (a[r] > curr) {
      ans += 'R';
      curr = a[r];
      r--;
      continue;
    }
    break;
  }
  cout << ans.size() << "\n";
  cout << ans << "\n";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  if (fine) {
    int t;
    cin >> t;
    while (t--) {
      solve();
    }
  } else
    solve();
  return 0;
}
