def f(n): if n == 0: return 0 else: return f(n // 2) + (n % 2) def test(n, r): for i in range(n, n + r): print(i, '{0:b}'.format(i).count('1'), f(i)) memo = {} def combi(n, r): if (n, r) in memo: return memo[(n, r)] elif n == 0: return 1 elif r == 0: return 1 elif n == r: return 1 else: x = combi(n - 1, r) + combi(n - 1, r - 1) memo[(n, r)] = x return x x = int(input()) if x == 0: print(1, 0) elif x > 31: print(0, 0) else: ans_count = combi(31, x) ans_sum = 0 multi = combi(30, x - 1) for i in range(31): t = 1 << i ans_sum += t * multi print(ans_count, ans_sum)