Problem:
Score : 100 points

Problem Statement

You are given positive integers X and Y.
If there exists a positive integer not greater than 10^{18} that is a multiple of X but not a multiple of Y, choose one such integer and print it.
If it does not exist, print -1.

Constraints

1 ≤ X,Y ≤ 10^9

X and Y are integers.

Input

Input is given from Standard Input in the following format:

X Y

Output

Print a positive integer not greater than 10^{18} that is a multiple of X but not a multiple of Y, or print -1 if it does not exist.

Sample Input 1

8 6

Sample Output 1

16

For example, 16 is a multiple of 8 but not a multiple of 6.

Sample Input 2

3 3

Sample Output 2

-1

A multiple of 3 is a multiple of 3.

Solution in Java (OpenJDK 11.0.6) (judge verdict: Runtime Error)




import java.util.Scanner;

public class Main {

     static Scanner scanner;

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

         int N=gi();
         long[] a=new long[N];
         long[] b=new long[N];

         long as=0;
         long bs=0;
         for (int i=0; i<N;i++) {
        	 a[i]=gl();
        	 as+=a[i];
         }
         for (int i=0; i<N;i++) {
        	 b[i]=gl();
        	 bs+=b[i];
         }

         int ai=0;
         int bi=0;
         for (int i=0; i<N;i++) {
        	 if(a[i]<b[i]) {
        		 if((a[i]-b[i])%2==0) {
        			 ai+=(b[i]-a[i])/2;
        		 } else {
        			 ai+=(b[i]-a[i]+1)/2;
        			 bi+=1;
        		 }
        	 } else if(b[i]<a[i]) {
        		 bi+=a[i]-b[i];
        	 }
         }

         if(bs-as>=0) {
        	 long t=bs-as;
        	 if(ai>=bi) {
        		 if(t>=ai+(ai-bi)) {
        			 System.out.println("Yes");
        		 } else {
        			 System.out.println("No");
        		 }
        	 } else {
        			 System.out.println("No");

        	 }
         } else {
             System.out.println("No");
         }
     }


     // 文字列として入力を取得
     public static String gs() {
          return scanner.next();
     }

     // intとして入力を取得
     public static int gi() {
          return Integer.parseInt(scanner.next());
     }

     // longとして入力を取得
     public static long gl() {
          return Long.parseLong(scanner.next());
     }

     // doubleとして入力を取得
     public static double gd() {
          return Double.parseDouble(scanner.next());
     }
}