#include<iostream>
using namespace std;
int main()
{
int n;
unsigned long long k;
cin>>n>>k;
n--;
cout<<((1llu<<(n+1))+(~k))<<endl
<<( ~k )<<endl
<<( 3llu<< n )<<endl
<<( 3llu<<(n +1) )<<endl
<<( 3llu<<(n +2) )<<endl
<<( 1llu<<(63+1) )<<endl
<<( n+1 )<<endl;
const int p=64;
cout<<n<<' '<<(1llu<<n)<<' '<<(1llu<<p)<<endl;
return 1;
}
输入输出如注释
为什么unsigned long long左移变量位似乎会自行取模64,移常量位就不会