import java.lang.Math.*

operator fun Int.not() = if (this != 0) false else true
operator fun Int.plus(other: Boolean) = this + if (other) 1 else 0

data class Point(val x: Int, val y: Int)

fun main(args: Array<String>) {
  val n = readLine()!!.toInt()
  val ps = Array<Point>(n) {
    val (x, y) = readLine()!!.split(" ").map { it.toInt() }
    Point(x, y)
  }
  val odd = (abs(ps.first().x) + abs(ps.first().y)) % 2
  if (ps.any { (abs(it.x) + abs(it.y)) % 2 != odd }) {
    println(-1)
    return
  }
  println(31 + !odd)
  if (!odd) print("1 ")
  for (i in 30 downTo 0) {
    print(1 shl i)
    print(if (i == 0) "\n" else " ")
  }
  for (p in ps) {
    var (x, y) = p
    if (!odd) {
      x -= 1
      print("R")
    }
    for (i in 30 downTo 0) {
      val t = 1 shl i
      if (abs(x) < abs(y)) {
        if (y > 0) {
          y -= t
          print("U")
        } else {
          y += t
          print("D")
        }
      } else {
        if (x > 0) {
          x -= t
          print("R")
        } else {
          x += t
          print("L")
        }
      }
    }
    println("")
  }
}
