object Solution { def printShortestPath(n: Int, i_start: Int, j_start: Int, i_end: Int, j_end: Int):Unit = { if(i_start%2 != i_end%2){ print("Impossible") return } else if(i_start%4 == i_end%4 && j_start%2 != j_end%2) { print("Impossible") return } else if(i_start%4 != i_end%4 && j_start%2 == j_end%2) { print("Impossible") return } var output = new scala.collection.mutable.LinkedList[String]; var i_curr = i_start var j_curr = j_start while(i_curr != i_end || j_curr != j_end) { if( i_curr > i_end) { if(j_curr < j_end) { output = output :+ "UR" i_curr -= 2 j_curr += 1 } else { output = output :+ "UL" i_curr -= 2 j_curr -= 1 } } else if (i_curr == i_end) { if(j_curr > j_end) { output = output :+ "L" j_curr -= 2 } else { output = output :+ "R" j_curr += 2 } } else if (i_curr < i_end) { if(j_curr <= j_end) { output = output :+ "LR" i_curr += 2 j_curr += 1 } else { output = output :+ "LL" i_curr += 2 j_curr -= 1 } } } println (output.length) print(output.mkString(" ")); } def main(args: Array[String]) { val sc = new java.util.Scanner (System.in); var n = sc.nextInt(); var i_start = sc.nextInt(); var j_start = sc.nextInt(); var i_end = sc.nextInt(); var j_end = sc.nextInt(); printShortestPath(n, i_start, j_start, i_end, j_end); } }