#include using namespace std; using ll=long long; using ull=unsigned long long; using pll=pair; using tll=tuple; using ld=long double; constexpr ll INF=(1ll<<60); #define rep(i,n) for (ll i=0;i<(ll)(n);i++) #define replr(i,l,r) for (ll i=(ll)(l);i<(ll)(r);i++) #define all(v) v.begin(),v.end() #define len(v) ((ll)v.size()) template inline bool chmin(T &a,T b){ if(a>b){ a=b; return true; } return false; } template inline bool chmax(T &a,T b){ if(a T binary_search(auto f,T ok,T ng){ while(1> t; while(t--){ ll d,x,y; cin >> d >> x >> y; ll p=x/gcd(x,y),q=y/gcd(x,y); auto f=[&](ll m){ ll tx=x+m*(-q),ty=y+m*p; return 0<=tx&&tx<=d&&0<=ty&&ty<=d; }; auto g=[&](ll m){ ll tx=x+m*q,ty=y+m*(-p); return 0<=tx&&tx<=d&&0<=ty&&ty<=d; }; ll ans=0; ll l=binary_search(f,0,2e9); chmax(ans,area(x,y,x+l*(-q),y+l*p)); ll r=binary_search(g,0,2e9); chmax(ans,area(x+r*q,y+r*(-p),x,y)); cout << ans << '\n'; } }