memo = {} def comb(n,k): if k<0 or k>n:return 0 if k==0 or k==n:return 1 if (n,k) in memo:return memo[(n,k)] memo[(n,k)] = comb(n-1,k-1)+comb(n-1,k) return memo[(n,k)] dp = [[0 for _ in range(32)] for _ in range(32)] for m in range(1,31+1): dp[m][1] = pow(2,m)-1 dp[m][m] = pow(2,m)-1 for m in range(3,31+1): for n in range(2,m): dp[m][n] = dp[m-1][n]+dp[m-1][n-1]+pow(2,m-1)*comb(m-1,n-1) x = int(input()) if x>31: print(0,0) else: print(comb(31,x),dp[31][x])