def solve(n): if n <= 3: return 1 << n ans = 0 L = n//3 for mask in range(1 << L): ar = [1]*(n+1) for i in range(L): if ((mask >> i) & 1) == 0: ar[i+1] = 0 continue for j in range(2*(i+1), L+1, i+1): if ((mask >> (j-1)) & 1) == 0: continue ar[j] = max(ar[j], ar[i+1] + 1) if max(ar) > 2: continue for i in range(1, L+1): if ar[i] == 2: for x in range(i, n+1, i): if x > L: ar[x] = -1 for i in range(1, L+1): if ar[i] == 1: for x in range(i, n+1, i): if x > L and 2*x <= n and ar[x] != -1 and ar[2*x] != -1: ar[x] = 2 ar[2*x] = 2 one, two = 0, 0 for i in range(L+1, n+1): one += ar[i] == 1 two += ar[i] == 2 ans += pow(2, one) * pow(3, two//2) return ans n = int(input()) print(solve(n))