#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define chmax(x, y) x = max(x, y) #define chmin(x, y) x = min(x, y) typedef long long ll; typedef uint64_t ull; typedef pair P; typedef pair Pid; typedef pair Pdi; typedef pair Pl; typedef pair Pll; typedef pair> PP; typedef pair PPi; constexpr double PI = 3.1415926535897932; // acos(-1) constexpr double EPS = 1e-9; constexpr int INF = 1001001001; constexpr int mod = 1e+9 + 7; // constexpr int mod = 998244353; vector divisor(ll x){ vector res; for(ll i = 1; i * i <= x; ++i){ if(x % i == 0){ res.emplace_back(i); if(i * i != x) res.emplace_back(x / i); } } sort(res.begin(), res.end()); return res; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); ll a, b; cin >> a >> b; vector div = divisor(a + b); int sz = div.size(); ll ans = -1; for(int i = 0; i < sz; ++i){ ll c = div[i]; if((b + c) % a == 0 && (c + a) % b == 0){ cout << c << endl; return 0; } } cout << ans << endl; }