#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast,no-stack-protector")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#pragma GCC optimize("unroll-loops")
std::mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int MOD = 1e9 + 7;
const int N = 2e5 + 5;
const int inf = 1e9;
const long long INF = 1e18;
int n, a[N];
int main(int argc, char const *argv[]) {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  int l = 1, r = n;
  int last = -1;
  vector<char> ans;
  while (l <= r) {
    if (a[l] < a[r]) {
      if (a[l] > last)
        ans.push_back('L'), last = a[l], l++;
      else if (a[r] > last)
        ans.push_back('R'), last = a[r], r--;
      else
        break;
    } else if (a[r] < a[l]) {
      if (a[r] > last)
        ans.push_back('R'), last = a[r], r--;
      else if (a[l] > last)
        ans.push_back('L'), last = a[l], l++;
      else
        break;
    } else if (a[l] == a[r]) {
      if (a[l] <= last && a[r] <= last) break;
      int cntl = 0, cntr = 0;
      if (a[l] > last) {
        int ll = l;
        while (ll < r && a[ll] < a[ll + 1]) cntl++, ll++;
      }
      if (a[r] > last) {
        int rr = r;
        while (rr > l && a[rr] > a[rr + 1]) cntr++, rr--;
      }
      if (cntl >= cntr) {
        ans.push_back('L'), last = a[l], l++;
      } else {
        ans.push_back('R'), last = a[r], r--;
      }
    }
  }
  cout << ans.size() << "\n";
  for (auto x : ans) cout << x;
  return 0;
}
