#include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int nn2 = 2e6; vector N2(nn2); for(long long i=0; i> R >> B; if(R > B) swap(R,B); auto solve = [](long long R,long long B) -> long long { long long ans1 = -1,border = -1; for(long long i=1; ; i++){ long long need = i*i; if(R >= need) R -= need; else if(B >= need){ if(border == -1) border = i; B -= need; } else{ans1 = i; break;} } for(long long i=border-1; i>=1; i--){ long long need = i*i; if(B >= need) B -= need,R += need; } for(;; ans1++){ long long need= ans1*ans1; if(R >= need) R -= need; else{ans1--; break;} } return ans1; }; long long check = max(solve(R,B),solve(B,R)); long long n = 18,n2 = 1< Se; for(long long i=0; i= check); } else{ long long maxs = 0; itr = Se.upper_bound(R); itr--; maxs = *itr; sum = maxs+B; int ans = upper_bound(N2.begin(),N2.end(),sum)-N2.begin(); cout << ans << endl; assert(ans >= check); } }