#include #define REP(i,n) for(int i=0;i<(n);i++) #define ALL(v) (v).begin(),(v).end() #define SZ(x) ((int)(x).size()) #define int long long using namespace std; typedef vector vint; typedef pair pint; bool check(int a,int b,int c) { if((a+b)%c or (a+c)%b or (b+c)%a) return false; if(a==b or a==c or b==c) return false; else return true; } const int INF=1e18; signed main() { int A,B; cin>>A>>B; int ans=INF; for(int C=1;C*C<=(A+B);C++){ if((A+B)%C==0){ if(check(A,B,C)) ans=min(ans,C); if(check(A,B,(A+B)/C)) ans=min(ans,(A+B)/C); } } cout<<(ans==INF? -1:ans)<