#include #include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rrep(i, n) for (int i = (int)n - 1; i > -1; i--) #define all(x) (x).begin(), (x).end() #define ll long long #define ld long double #define INF 1000000000000000000 typedef pair pll; vector enum_divisors(long long N) { vector res; for (long long i = 1; i * i <= N; ++i) { if (N % i == 0) { res.push_back(i); // 重複しないならば i の相方である N/i も push if (N / i != i) res.push_back(N / i); } } // 小さい順に並び替える sort(res.begin(), res.end()); return res; } int main() { cin.tie(0); ios::sync_with_stdio(false); ll A, B; cin >> A >> B; ll sum = A + B; vector en = enum_divisors(sum); rep(i, en.size()) { ll C = en[i]; if ((B + C) % A == 0 && (A + C) % B == 0 && B != C && A != C) { cout << C << endl; return 0; } } cout << -1 << endl; return 0; }