← Home
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()
}