#include <bits/stdc++.h>
#pragma GCC optimize "trapv"
const int inf1 = 1e9;
const long long int inf2 = 1e18;
const int N = 100000;
using namespace std;
int dirs[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};
int solve() {
  int n;
  cin >> n;
  int a[n];
  for (int i = 0; i < n; i++) cin >> a[i];
  if (n == 1) {
    cout << a[0] << "\n";
    cout << 'L' << "\n";
    return 0;
  }
  vector<int> s;
  s.push_back(a[0]);
  int i = 1;
  while (i < n && s.back() < a[i]) {
    s.push_back(a[i]);
    i++;
  }
  vector<int> v;
  v.push_back(a[n - 1]);
  i = n - 2;
  while (i >= 0 && a[i] > v.back()) {
    v.push_back(a[i]);
    i--;
  }
  i = 0;
  int j = 0;
  int n1 = (int)s.size();
  int n2 = (int)v.size();
  string ans = "";
  int cnt = 0;
  while (i < n1 && j < n2 && cnt < n) {
    if (s[i] == v[j])
      break;
    else if (s[i] < v[j]) {
      cnt++;
      i++;
      ans += 'L';
    } else {
      cnt++;
      j++;
      ans += 'R';
    }
  }
  int cnt1 = 1, cnt2 = 1;
  if (i == n1) cnt1--;
  if (j == n2) cnt2--;
  while (i < n1 - 1 && s[i] < s[i + 1]) cnt1++, i++;
  while (j < n2 - 1 && v[j] < v[j + 1]) cnt2++, j++;
  if (cnt < n) {
    if (cnt1 > cnt2) {
      for (int i = 0; i < cnt1; i++) ans += 'L';
    } else
      for (int i = 0; i < cnt2; i++) ans += 'R';
  }
  cout << cnt + max(cnt1, cnt2) << "\n";
  cout << ans << "\n";
  return 0;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
