// #include #include #include #include #include #include #include using namespace std; using ll = long long; using vi=vector; using vvi=vector; using vl=vector; using vvl=vector; #define rep(i,n) for(int i=0;i<(int)n;i++) #define rep1(i,n) for(int i=1;i<=(int)n;i++) #define INF (ll)(2e18) #define MOD ((ll)1e9+7) const int di[]={0,1,-1,0}; const int dj[]={1,0,0,-1}; #define MAX 100000 int main(){ int n;cin>>n; vl dp(n+3,0); ll M=(1ll<<(n+1))-1; auto f=[&](auto f,int k)->ll{ if(k==1)return 1; if(dp[k]>0)return dp[k]; return dp[k]=f(f,k-1)*((1ll<