For this Question: <i>Your Grace, I feel I've been remiss in my duties. I've given you meat and wine and music, but I haven’t shown you the hospitality you deserve. My King has married and I owe my new Queen a wedding gift. </i>

Roose Bolton thinks of attacking Robb Stark, but since Catelyn has realised his traumatising idea, she signals Robb by shouting two numbers A and B. For Robb to understand the signal, he needs to solve the following problem with the two numbers:

Given A and B, find whether A can be transformed to B if A can be converted to A + fact(A) any number of times, where fact(A) is any factor of A other than 1 and A itself.

For example: A = 9, B = 14 can follow the given steps during conversion
A = 9
A = 9 + 3 = 12 (3 is a factor of 9)
A = 12 + 2 = 14 = B (2 is a factor of 12)The first and the only line of input contains two numbers A and B.


Constraints
1 <= A, B <= 10<sup>12</sup>Output "Yes" (without quotes) if we can transform A to B, else output "No" (without quotes)Sample Input
9 14

Sample Output
Yes

Explanation: In the problem statement

Sample Input
33 35

Sample Output
No

Explanation
The minimum factor of 33 is 3, so we cannot transform 33 to 35., I have written this Solution Code: import java.io.BufferedReader;
	import java.io.IOException;
	import java.io.InputStreamReader;
	import java.io.PrintWriter;
	import java.util.*;
	import java.util.StringTokenizer;

	 public class Main {
		static class FastReader {
			BufferedReader br;
			StringTokenizer st;

			public FastReader() {
				br = new BufferedReader(new
				                        InputStreamReader(System.in));
			}

			String next() {
				while (st == null || !st.hasMoreElements()) {
					try {
						st = new StringTokenizer(br.readLine());
					} catch (IOException  e) {
						e.printStackTrace();
					}
				}
				return st.nextToken();
			}

			int nextInt() {
				return Integer.parseInt(next());
			}

			long nextLong() {
				return Long.parseLong(next());
			}

			double nextDouble() {
				return Double.parseDouble(next());
			}

			String nextLine() {
				String str = "";
				try {
					str = br.readLine();
				} catch (IOException e) {
					e.printStackTrace();
				}
				return str;
			}
		};

		public static void main(String[] args) {
			FastReader sc = new FastReader();
			PrintWriter pw = new PrintWriter(System.out);
			long a=sc.nextLong();
			long b=sc.nextLong();
			long tmp=a;
			res=new ArrayList<>();
			factorize(a);
			if(res.size()==1&&res.get(0)==a)
			{
				System.out.println("No");
				return;
			}
			if(a==b)
			{
				System.out.println("Yes");
				return;
			}


			for(long i=2;i <= (long) Math.sqrt(b);i++)
			{
				if(b%i==0&&(b-i)>=a)
				{
					 for(long j:res)
					 {
					 	if((b-i)%j==0)
					 	{
					 		System.out.println("Yes");
					 		return;
					 	}
					 }
				}

			}
			System.out.println("No");
	}
	static ArrayList<Long> res;
	static void factorize(long n) {
        int count = 0;


        while (!(n % 2 > 0)) {

            n >>= 1;

            count++;
        }


        if (count > 0) {
            res.add(2l);
        }



        for (long i = 3; i <= (long) Math.sqrt(n); i += 2) {
            count = 0;
            while (n % i == 0) {
                count++;
                n = n / i;

            }
            if (count > 0) {
                res.add(i);
            }
        }


        if (n > 2) {
            res.add(n);
        }
    }







	}, In this Programming Language: Java, Now tell me if this Code is compilable or not?