#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
long long int gcd(long long int a, long long int b) {
  if (b == 0) return a;
  a %= b;
  return gcd(b, a);
}
bool sortbysec(const pair<string, int> &a, const pair<string, int> &b) {
  return (a.second < b.second);
}
bool checkParity(long long int a, long long int b) {
  if (a % 2 == 0 && b % 2 == 0 || a % 2 == 1 && b % 2 == 1) return true;
  return false;
}
long long int findlcm(vector<int> &v, int n) {
  long long int ans = v[0];
  for (int i = 1; i < n; i++) ans = (((v[i] * ans)) / (gcd(v[i], ans)));
  return ans;
}
long long int binomialCoeff(long long int n, long long int k) {
  long long int C[k + 1];
  memset(C, 0, sizeof(C));
  C[0] = 1;
  for (long long int i = 1; i <= n; i++) {
    for (long long int j = min(i, k); j > 0; j--)
      C[j] = (C[j] + C[j - 1]) % mod;
  }
  return C[k];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cerr.tie(NULL);
  ;
  int n;
  cin >> n;
  vector<int> arr;
  for (long long int i = 0; i < n; i++) {
    int x;
    cin >> x;
    arr.push_back(x);
  }
  if (n == 1) {
    cout << "1" << endl;
    cout << "L";
    return 0;
  }
  vector<int> ans;
  vector<char> v;
  while (arr.size() > 0) {
    int p1 = arr[0];
    int p2 = arr[arr.size() - 1];
    if (arr.size() == 1) {
      if (p1 < ans[ans.size() - 1]) break;
      ans.push_back(p1);
      v.push_back('L');
      break;
    }
    if (ans.size() == 0) {
      if (p1 > p2) {
        arr.erase(arr.begin() + arr.size() - 1);
        ans.push_back(p2);
        v.push_back('R');
      } else if (p2 > p1) {
        arr.erase(arr.begin());
        ans.push_back(p1);
        v.push_back('L');
      } else {
        int cl = 0, cr = 0;
        int temp = -1;
        for (int i = 0; i < arr.size(); i++) {
          if (arr[i] > temp) {
            temp = arr[i];
            cl++;
          } else
            break;
        }
        temp = -1;
        for (int i = arr.size() - 1; i >= 0; i--) {
          if (arr[i] > temp) {
            temp = arr[i];
            cr++;
          } else
            break;
        }
        if (cl >= cr) {
          for (long long int i = 0; i < cl; i++) v.push_back('L');
          for (long long int i = 0; i < cl; i++) arr.erase(arr.begin());
          break;
        } else {
          for (long long int i = 0; i < cr; i++)
            arr.erase(arr.begin() + arr.size() - 1);
          for (long long int i = 0; i < cr; i++) v.push_back('R');
          break;
        }
      }
    } else {
      int temp = ans[ans.size() - 1];
      if (p1 > p2) {
        if (p2 > temp) {
          arr.erase(arr.begin() + arr.size() - 1);
          ans.push_back(p2);
          v.push_back('R');
        } else {
          if (p1 > temp) {
            arr.erase(arr.begin());
            ans.push_back(p1);
            v.push_back('L');
          } else
            break;
        }
      } else if (p2 > p1) {
        if (p1 > temp) {
          arr.erase(arr.begin());
          ans.push_back(p1);
          v.push_back('L');
        } else {
          if (p2 > temp) {
            arr.erase(arr.begin() + arr.size() - 1);
            ans.push_back(p2);
            v.push_back('R');
          } else
            break;
        }
      } else {
        int cl = 0, cr = 0;
        for (int i = 0; i < arr.size(); i++) {
          if (arr[i] > temp) {
            temp = arr[i];
            cl++;
          } else
            break;
        }
        temp = ans[ans.size() - 1];
        for (int i = arr.size() - 1; i >= 0; i--) {
          if (arr[i] > temp) {
            temp = arr[i];
            cr++;
          } else
            break;
        }
        if (cl >= cr) {
          for (long long int i = 0; i < cl; i++) v.push_back('L');
          for (long long int i = 0; i < cl; i++) arr.erase(arr.begin());
          break;
        } else {
          for (long long int i = 0; i < cr; i++)
            arr.erase(arr.begin() + arr.size() - 1);
          for (long long int i = 0; i < cr; i++) v.push_back('R');
          break;
        }
      }
    }
  }
  cout << v.size() << endl;
  for (long long int i = 0; i < v.size(); i++) cout << v[i];
}
