import numpy as np
def good_lad(n):
n, m = n + 1, n + 2
M = np.zeros((n, m), dtype=np.int64)
j = np.arange(1, m) - 1
for i in range(1, n):
s = np.cumsum(M[i - j, j])
M[i, 1:] = s
M[i, i + 1:] += 1
print('data size in bytes:', M.nbytes)
return M[-1, -1]
n = int(input())
print(good_lad(n))
aW1wb3J0IG51bXB5IGFzIG5wCgpkZWYgZ29vZF9sYWQobik6CiAgICBuLCBtID0gbiArIDEsIG4gKyAyCiAgICBNID0gbnAuemVyb3MoKG4sIG0pLCBkdHlwZT1ucC5pbnQ2NCkKICAgIGogPSBucC5hcmFuZ2UoMSwgbSkgLSAxCgogICAgZm9yIGkgaW4gcmFuZ2UoMSwgbik6CiAgICAgICAgcyA9IG5wLmN1bXN1bShNW2kgLSBqLCBqXSkKICAgICAgICBNW2ksIDE6XSA9IHMKICAgICAgICBNW2ksIGkgKyAxOl0gKz0gMQoKICAgIHByaW50KCdkYXRhIHNpemUgaW4gYnl0ZXM6JywgTS5uYnl0ZXMpCiAgICByZXR1cm4gTVstMSwgLTFdCiAgICAKbiA9IGludChpbnB1dCgpKQpwcmludChnb29kX2xhZChuKSkK