#include using namespace std; using ll = long long; using ld = long double; #define mod99 998244353 #define endl "\n" #define rep(i,n) for (ll i = 0; i < (ll)(n); ++i) #define prep(i,a,n) for (ll i = a; i < n; ++i) #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(), a.rend() #define si(x) ((ll)(x).size()) #define YN(bool) if(bool){cout<<"YES"< inline T gcd(T a,T b) {return (b==0)?a:gcd(b,a%b);} template inline T lcm(T a, T b) {return a/gcd(a,b)*b;} templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> a >> b; vector p, q, memo; while(a!=0) {p.push_back(a%2); a/=2;} while(b!=0) {q.push_back(b%2); b/=2;} if(si(p)>si(q)) rep(i,si(p)-si(q)) q.push_back(0); if(si(p)=0;i--) { if(memo[i]==1) ans+=t; t*=2; } cout << ans << endl; }