def fib(n,memo={}):
    if n==0 or 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=int(input())
print(fib(n)) def fib(n,memo={}):
    if n==0 or 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 or 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 or n==1 n==0 n 0 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 {} n=int(input()) n int(input()) int input() input print(fib(n)) print fib(n) fib n n=int(input()) int(input()) n def fib(n,memo={}):
    if n==0 or 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 or 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 or 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=int(input())
print(fib(n))
