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))