import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(solve(a, b) ? "Yes" : "No");

        sc.close();
    }

    static boolean solve(int a, int b) {
        int number = Integer.parseInt(String.format("%d%d", a, b));
        int root = (int) Math.round(Math.sqrt(number));

        return root * root == number;
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(solve(a, b) ? "Yes" : "No");

        sc.close();
    }

    static boolean solve(int a, int b) {
        int number = Integer.parseInt(String.format("%d%d", a, b));
        int root = (int) Math.round(Math.sqrt(number));

        return root * root == number;
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(solve(a, b) ? "Yes" : "No");

        sc.close();
    } main {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(solve(a, b) ? "Yes" : "No");

        sc.close();
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc int b = sc.nextInt(); b sc.nextInt() sc.nextInt sc System.out.println(solve(a, b) ? "Yes" : "No") System.out.println System.out System System.out solve(a, b) ? "Yes" : "No" solve(a, b) solve a b "Yes" "No" sc.close() sc.close sc String[] args args static boolean solve(int a, int b) {
        int number = Integer.parseInt(String.format("%d%d", a, b));
        int root = (int) Math.round(Math.sqrt(number));

        return root * root == number;
    } solve {
        int number = Integer.parseInt(String.format("%d%d", a, b));
        int root = (int) Math.round(Math.sqrt(number));

        return root * root == number;
    } int number = Integer.parseInt(String.format("%d%d", a, b)); number Integer.parseInt(String.format("%d%d", a, b)) Integer.parseInt Integer String.format("%d%d", a, b) String.format String "%d%d" a b int root = (int) Math.round(Math.sqrt(number)); root (int) Math.round(Math.sqrt(number)) Math.round Math Math.sqrt(number) Math.sqrt Math number return root * root == number; root * root == number root * root root root number int a a int b b public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(solve(a, b) ? "Yes" : "No");

        sc.close();
    }

    static boolean solve(int a, int b) {
        int number = Integer.parseInt(String.format("%d%d", a, b));
        int root = (int) Math.round(Math.sqrt(number));

        return root * root == number;
    }
} public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(solve(a, b) ? "Yes" : "No");

        sc.close();
    }

    static boolean solve(int a, int b) {
        int number = Integer.parseInt(String.format("%d%d", a, b));
        int root = (int) Math.round(Math.sqrt(number));

        return root * root == number;
    }
} Main
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(solve(a, b) ? "Yes" : "No");

        sc.close();
    }

    static boolean solve(int a, int b) {
        int number = Integer.parseInt(String.format("%d%d", a, b));
        int root = (int) Math.round(Math.sqrt(number));

        return root * root == number;
    }
}