n = int(input())#创建dp表dp = [0]*n

'''#地推公式f(n) = f(n-1)+f(n-2)+...+f(0)f(n-1) = f(n-2)+f(n-3)+...f(0)

n = int(input())
#创建dp表
dp = [0]*n

'''
    #地推公式
    f(n) = f(n-1)+f(n-2)+...+f(0)
    f(n-1) = f(n-2)+f(n-3)+...f(0)

    dp[i] = sum(dp)+dp[]
'''
#判断输入1,2时,输出初始化值,防止数组越界
if n == 1:
    print(1)
elif n ==2:
    print(2)
else:
    #初始化dp数组
    dp[0] = 1
    dp[1] = 3
    #每到一阶的可能为之前可能的和
    for i in range(2,n):
        dp[i] = sum(dp)
    #打印dp数组最后一位,即当到n阶时所有可能
    print(dp[-1])


'''#判断输入1,2时,输出初始化值,防止数组越界if n == 1:print(1)elif n ==2:print(2)else:#初始化dp数组dp[0] = 1dp[1] = 3#每到一阶的可能为之前可能的和for i in range(2,n):dp[i] = sum(dp)#打印dp数组最后一位,即当到n阶时所有可能print(dp[-1])