let () = Scanf.scanf "%d\n" @@ fun n ->
  let xys = Array.to_list @@ Array.init n @@ fun _ -> Scanf.scanf "%d %d\n" @@ fun x y -> x, y in
  if List.exists (fun (x, y) -> (x land 1) <> (y land 1)) xys then
    if List.exists (fun (x, y) -> (x land 1) = (y land 1)) xys then print_endline "-1"
    else begin
      print_endline "17";
      print_endline "1 1 1 1 1 2 2 2 2 4 4 4 4 8 8 8 8";
      List.iter (fun (x, y) ->
        print_char
        (if abs x land 1 = 1 then
          if x <= 0 then 'L' else 'R'
        else if y <= 0 then 'D' else 'U');
        for i = 1 to 4 do
          print_string 
          (if abs x land (1 lsl i) = 0 then "LR"
          else if x <= 0 then "LL" else "RR");
          print_string 
          (if abs y land (1 lsl i) = 0 then "UD"
          else if y <= 0 then "DD" else "UU");
        done;
        print_newline ()) xys;
    end
  else begin
    print_endline "18";
    print_endline "1 1 1 1 1 1 2 2 2 2 4 4 4 4 8 8 8 8";
    List.iter (fun (x, y) ->
      if abs x land 1 = 0 && abs y land 1 = 0 then print_string "UD"
      else begin
        print_char (if x <= 0 then 'L' else 'R');
        print_char (if y <= 0 then 'D' else 'U')
      end;
      for i = 1 to 4 do
        print_string 
        (if abs x land (1 lsl i) = 0 then "LR"
        else if x <= 0 then "LL" else "RR");
        print_string 
        (if abs y land (1 lsl i) = 0 then "UD"
        else if y <= 0 then "DD" else "UU");
      done;
      print_newline ()) xys
  end
