using System; using System.Collections.Generic; using System.Linq; using static System.Console; using static System.Convert; using static System.Math; //using Debug; //using static System.Globalization.CultureInfo; class Program { static void Main(string[] args) { //Solve(); WriteLine(Solve()); } static int Solve() { var ab = Input.ar; var list = new List(); for(var i=1;i*i<=ab[0]+ab[1];i++) if ((ab[0] + ab[1]) % i == 0) { list.Add(i); list.Add((ab[0] + ab[1]) / i); } list = list.OrderBy(v => v).ToList(); foreach (var val in list) { if ((ab[0] + val) % ab[1] == 0 && (ab[1] + val) % ab[0] == 0) return val; } return -1; } } public class Input { public static string read => ReadLine(); public static int[] ar => Array.ConvertAll(read.Split(' '), int.Parse); public static int num => ToInt32(read); public static long[] arL => Array.ConvertAll(read.Split(' '), long.Parse); public static long numL => ToInt64(read); public static char[][] gred(int h) => Enumerable.Repeat(0, h).Select(v => read.ToCharArray()).ToArray(); public static int[][] ar2D(int num) => Enumerable.Repeat(0, num).Select(v => ar).ToArray(); public static long[][] arL2D(int num) => Enumerable.Repeat(0, num).Select(v => arL).ToArray(); public const long Inf = (long)1e18; public const double eps = 1e-6; public const string Alfa = "abcdefghijklmnopqrstuvwxyz"; public const int MOD = 1000000007; }