open Batteries

let read_two () = Scanf.sscanf (read_line ()) "%d %d" (fun a b -> (a, b))

let read_three () =
  Scanf.sscanf (read_line ()) "%d %d %d" (fun a b c -> (a, b, c))

let read_four () =
  Scanf.sscanf (read_line ()) "%d %d %d" (fun a b c d -> (a, b, c, d))

(* a**x *)
let pow a x =
  let rec aux acc = function 0 -> acc | n -> aux (acc * a) (n - 1) in
  aux 1 x

let () =
  let a, b = read_two () in
  let pow_b = string_of_int b |> String.length in
  let n = b + (a * pow 10 pow_b) in
  let max_i = float_of_int n |> sqrt |> int_of_float in
  let ans = ref false in
  for i = 1 to max_i + 1 do
    if i * i = n then ans := true else ()
  done;
  if !ans then print_string "Yes\n" else print_string "No\n"
