#include<bits/stdc++.h>
using namespace std;
long long add(long long a,long long b){
long long ans=a;
while(b!=0){
ans=a^b;
b=(a&b)<<1;
a=ans;
}
return ans;
}
long long mine(int a,int b){
return add(a,add(~b,1));
}
long long muti(long long a,long long b){
long long ans=0;
while(b){
if(b&1)ans=add(ans,a);
a<<=1;
b>>=1;
}
return ans;
}
//一般情况
long long ca(long long a,long long b){
long long x=a<0? abs(a):a;
long long y=b<0? abs(b):b;
long long ans=0;
for (int i = 30; i >=0 ; i=mine(i,1)) {
if ((x >> i) >= y) {
ans |= (1 << i);
x = mine(x, y << i);
}
}
return a<0^b<0 ?abs(ans):ans;
}
long long pqow(long long a,long long b){
long long ans=1;
while(b){
if(b&1)ans= muti(a,ans);
a=muti(a,a);
b>>=1;
}
return ans;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
long long a,b;
cin>>a>>b;
cout<<add(a,b)<<'\n';
cout<<mine(a,b)<<'\n';
cout<<muti(a,b)<<'\n';
cout<<ca(a,b)<<'\n';
cout<<pqow(a,b)<<'\n';
}