package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
var n int
fmt.Fscan(in, &n)
a := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &a[i])
}
l, r := 0, n-1
last := 0
ans := make([]byte, 0, n)
for l <= r {
leftOk := a[l] > last
rightOk := a[r] > last
if !leftOk && !rightOk {
break
}
if leftOk && !rightOk {
ans = append(ans, 'L')
last = a[l]
l++
} else if !leftOk && rightOk {
ans = append(ans, 'R')
last = a[r]
r--
} else {
if a[l] < a[r] {
ans = append(ans, 'L')
last = a[l]
l++
} else if a[r] < a[l] {
ans = append(ans, 'R')
last = a[r]
r--
} else {
llast := last
i := l
cl := 0
for i <= r && a[i] > llast {
cl++
llast = a[i]
i++
}
rlast := last
i = r
cr := 0
for i >= l && a[i] > rlast {
cr++
rlast = a[i]
i--
}
if cl >= cr {
for i := 0; i < cl; i++ {
ans = append(ans, 'L')
}
} else {
for i := 0; i < cr; i++ {
ans = append(ans, 'R')
}
}
break
}
}
}
out := bufio.NewWriterSize(os.Stdout, 1<<20)
fmt.Fprintln(out, len(ans))
fmt.Fprintln(out, string(ans))
out.Flush()
}