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 C (GCC 5.4.1) (judge verdict: Time Limit Exceeded)

#include <stdio.h>

int main(){
  int N;
  int a,b,d;
  char str[10];
  char s,c;
  
  scanf("%d\n",&N);
  
  printf("0\n");
  fflush(stdout);

  str[0] = getchar();
  while(c=getchar()!='\n' && c!=EOF);
  //fgets(str,10,stdin);
  
  if(str[0]=='V')
    return 0;
  
  s = str[0];
  a = 1;
  b = N-1;
  
  int n=0;
  while(1){
    if(n++>10) break;
    d = b - a;
    printf("%d\n",d/2+a);
    fflush(stdout);
  str[0] = getchar();
  while(c=getchar()!='\n' && c!=EOF);

  //    fgets(str,10,stdin);  
  //  printf("%c",str[0]);
    if(str[0]=='V') break;

    if ((d/2)%2==0 && s==str[0])
      b = a+d/2-1;
    if ((d/2)%2==0 && s!=str[0]){
      a = a+d/2+1;
      s = str[0];
    }
    if ((d/2)%2!=0 && s!=str[0])
      b = a+d/2-1;
    if ((d/2)%2!=0 && s==str[0]){
      a = a+d/2+1;
      s = str[0];
    }
    
  }

  
  return 0;
}