#include <bits/stdc++.h>
using namespace std;
vector<long long> vec, vec2, vec3, vec4;
long long n, k, m, t, sum, cnt;
vector<bool> visited;
deque<int> pq, pq2;
map<long long, long long> mpc;
vector<vector<pair<long long, long long> > > graph;
vector<int> cost;
const int sss = 1e6 + 1;
int sortBy(pair<long long, long long> &a, pair<long long, long long> &b) {
  return a.second < b.second;
}
string letters = "abcdefghijklmnopqrstuvwxyz";
void solve() {
  cin >> n;
  vec.resize(n);
  for (long long i = 0; i < n; ++i) cin >> vec[i];
  vector<char> right;
  long long prev = 0;
  k = 0;
  long long i = 0, j = n - 1;
  while (i <= j && k < n + 1) {
    if (i == 0 && j == n - 1) {
      if (vec[i] < vec[j]) {
        prev = vec[i];
        right.push_back('L');
        i++;
      } else if (vec[i] > vec[j]) {
        prev = vec[j];
        right.push_back('R');
        j--;
      } else {
        goto f;
      }
      continue;
    }
  f:
    if (vec[i] == vec[j] && i != j) {
      long long cnt1 = 0, cnt2 = 0;
      long long cpy = prev;
      for (long long kk = i; kk < j + 1; ++kk) {
        if (vec[kk] <= cpy) break;
        if (vec[kk] > cpy) {
          cpy = vec[kk];
          cnt1++;
        }
      }
      cpy = prev;
      for (int kk = j; kk >= i; kk--) {
        if (vec[kk] <= cpy) break;
        if (vec[kk] > cpy) {
          cpy = vec[kk];
          cnt2++;
        }
      }
      if (cnt1 > cnt2) {
        while (vec[i] > prev && i <= j) {
          prev = vec[i];
          right.push_back('L');
          i++;
        }
      } else {
        while (vec[j] > prev && i <= j) {
          prev = vec[j];
          right.push_back('R');
          j--;
        }
      }
      break;
    } else {
      if (vec[i] > prev && vec[j] > prev) {
        if (vec[i] > vec[j]) {
          prev = vec[j];
          right.push_back('R');
          j--;
        } else {
          prev = vec[i];
          right.push_back('L');
          i++;
        }
      } else {
        if (vec[i] > prev) {
          prev = vec[i];
          right.push_back('L');
          i++;
        }
        if (vec[j] > prev) {
          prev = vec[j];
          right.push_back('R');
          j--;
        }
      }
    }
    k++;
  }
  cout << right.size() << '\n';
  for (long long i = 0; i < right.size(); ++i) {
    cout << right[i];
  }
  cout << "\n";
}
int main() {
  t = 1;
  while (t--) solve();
}
