def fib(n,memo={}):
    if n == 0:
        return 1
    elif n == 1:
        return 1
    elif n in memo:
        return memo[n]
        
    else:
        memo[n]=fib(n-1,memo)+fib(n-2,memo)
        return memo[n]
a=int(input())
print(fib(a)) def fib(n,memo={}):
    if n == 0:
        return 1
    elif n == 1:
        return 1
    elif n in memo:
        return memo[n]
        
    else:
        memo[n]=fib(n-1,memo)+fib(n-2,memo)
        return memo[n] fib if n == 0:
        return 1
    elif n == 1:
        return 1
    elif n in memo:
        return memo[n]
        
    else:
        memo[n]=fib(n-1,memo)+fib(n-2,memo)
        return memo[n] n == 0 n 0 return 1 1 elif n == 1:
        return 1
     n == 1 n 1 return 1 1 elif n in memo:
        return memo[n]
        
     n in memo n memo return memo[n] memo[n] memo n memo[n]=fib(n-1,memo)+fib(n-2,memo) memo[n] memo n fib(n-1,memo)+fib(n-2,memo) fib(n-1,memo) fib n-1 n 1 memo fib(n-2,memo) fib n-2 n 2 memo return memo[n] memo[n] memo n n n memo={} memo {} a=int(input()) a int(input()) int input() input print(fib(a)) print fib(a) fib a a=int(input()) int(input()) a def fib(n,memo={}):
    if n == 0:
        return 1
    elif n == 1:
        return 1
    elif n in memo:
        return memo[n]
        
    else:
        memo[n]=fib(n-1,memo)+fib(n-2,memo)
        return memo[n] def fib(n,memo={}):
    if n == 0:
        return 1
    elif n == 1:
        return 1
    elif n in memo:
        return memo[n]
        
    else:
        memo[n]=fib(n-1,memo)+fib(n-2,memo)
        return memo[n] fib
def fib(n,memo={}):
    if n == 0:
        return 1
    elif n == 1:
        return 1
    elif n in memo:
        return memo[n]
        
    else:
        memo[n]=fib(n-1,memo)+fib(n-2,memo)
        return memo[n]
a=int(input())
print(fib(a))
