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++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include<bits/stdc++.h>
using namespace std;
int high,low,n;
inline string GET(int ask)
{
	cout<<ask<<endl;
	fflush(stdout);
	string s;
	cin>>s;
	return s;
}
int main()
{
	string s;
	std::ios::sync_with_stdio(false);
	cin>>n;
	string A=GET(0);
	if(A=="Vacant")return 0;
	string B=GET(n-1);
	if(B=="Vacant")return 0;
	high=n-2,low=1;
	while(high>low)
	{
		int mid=(high+low)/2;
		s=GET(mid);
		if(s=="Vacant")return 0;
		if(mid%2==0)
			if(s==A)
				high=mid+1;
			else
				low=mid-1;
		else
			if(s==B)
				low=mid+1;
			else
				high=mid-1;
	}
	return 0;
}