# -*- coding: utf-8 -*-


def fib(n):
    if n == 0 or n == 1:
        return 1
    return fib(n-1) + fib(n-2)

def fib_memo(n, memo):
    if n == 0 or n == 1:
        memo[n] = 1
        return memo[n]
    if memo[n] != -1:
        return memo[n]
    memo[n] = fib_memo(n-1, memo) + fib_memo(n-2, memo)
    return memo[n]

memo = [-1 for i in range(45)]

n = int(input())
print(fib_memo(n, memo)) def fib(n):
    if n == 0 or n == 1:
        return 1
    return fib(n-1) + fib(n-2) fib if n == 0 or n == 1:
        return 1
     n == 0 or n == 1 n == 0 n 0 n == 1 n 1 return 1 1 return fib(n-1) + fib(n-2) fib(n-1) + fib(n-2) fib(n-1) fib n-1 n 1 fib(n-2) fib n-2 n 2 n n def fib_memo(n, memo):
    if n == 0 or n == 1:
        memo[n] = 1
        return memo[n]
    if memo[n] != -1:
        return memo[n]
    memo[n] = fib_memo(n-1, memo) + fib_memo(n-2, memo)
    return memo[n] fib_memo if n == 0 or n == 1:
        memo[n] = 1
        return memo[n]
     n == 0 or n == 1 n == 0 n 0 n == 1 n 1 memo[n] = 1 memo[n] memo n 1 return memo[n] memo[n] memo n if memo[n] != -1:
        return memo[n]
     memo[n] != -1 memo[n] memo n -1 return memo[n] memo[n] memo n memo[n] = fib_memo(n-1, memo) + fib_memo(n-2, memo) memo[n] memo n fib_memo(n-1, memo) + fib_memo(n-2, memo) fib_memo(n-1, memo) fib_memo n-1 n 1 memo fib_memo(n-2, memo) fib_memo n-2 n 2 memo return memo[n] memo[n] memo n n n memo memo -1 for i in range(45) for i in range(45) i range(45) range 45 for i in range(45) -1 memo = [-1 for i in range(45)] memo [-1 for i in range(45)] n = int(input()) n int(input()) int input() input print(fib_memo(n, memo)) print fib_memo(n, memo) fib_memo n memo memo = [-1 for i in range(45)] [-1 for i in range(45)] memo def fib_memo(n, memo):
    if n == 0 or n == 1:
        memo[n] = 1
        return memo[n]
    if memo[n] != -1:
        return memo[n]
    memo[n] = fib_memo(n-1, memo) + fib_memo(n-2, memo)
    return memo[n] def fib_memo(n, memo):
    if n == 0 or n == 1:
        memo[n] = 1
        return memo[n]
    if memo[n] != -1:
        return memo[n]
    memo[n] = fib_memo(n-1, memo) + fib_memo(n-2, memo)
    return memo[n] fib_memo n = int(input()) int(input()) n def fib(n):
    if n == 0 or n == 1:
        return 1
    return fib(n-1) + fib(n-2) def fib(n):
    if n == 0 or n == 1:
        return 1
    return fib(n-1) + fib(n-2) fib
# -*- coding: utf-8 -*-


def fib(n):
    if n == 0 or n == 1:
        return 1
    return fib(n-1) + fib(n-2)

def fib_memo(n, memo):
    if n == 0 or n == 1:
        memo[n] = 1
        return memo[n]
    if memo[n] != -1:
        return memo[n]
    memo[n] = fib_memo(n-1, memo) + fib_memo(n-2, memo)
    return memo[n]

memo = [-1 for i in range(45)]

n = int(input())
print(fib_memo(n, memo))