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

import sys
sys.setrecursionlimit(10 ** 9)
def input(): return sys.stdin.readline().strip()
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(): return list(map(int, input().split()))

N=INT()

dp=[0]*50
dp[0]=dp[1]=1
for i in range(2, 50):
    dp[i]=dp[i-1]+dp[i-2]

print(dp[N])
 import sys sys sys.setrecursionlimit(10 ** 9) sys.setrecursionlimit sys setrecursionlimit 10 ** 9 10 9 def input(): return sys.stdin.readline().strip() input def INT(): return int(input()) INT def MAP(): return map(int, input().split()) MAP def LIST(): return list(map(int, input().split())) LIST N=INT() N INT() INT dp=[0]*50 dp [0]*50 [0] 0 50 dp[0]=dp[1]=1 dp[0] dp 0 1 =dp[1]=1 dp[1] dp 1 1 for i in range(2, 50):
    dp[i]=dp[i-1]+dp[i-2] i range(2, 50) range 2 50 dp[i]=dp[i-1]+dp[i-2] dp[i] dp i dp[i-1]+dp[i-2] dp[i-1] dp i-1 i 1 dp[i-2] dp i-2 i 2 print(dp[N]) print dp[N] dp N dp=[0]*50 [0]*50 dp N=INT() INT() N def input(): return sys.stdin.readline().strip() def input(): return sys.stdin.readline().strip() input def MAP(): return map(int, input().split()) def MAP(): return map(int, input().split()) MAP def INT(): return int(input()) def INT(): return int(input()) INT def LIST(): return list(map(int, input().split())) def LIST(): return list(map(int, input().split())) LIST
# -*- coding: utf-8 -*-

import sys
sys.setrecursionlimit(10 ** 9)
def input(): return sys.stdin.readline().strip()
def INT(): return int(input())
def MAP(): return map(int, input().split())
def LIST(): return list(map(int, input().split()))

N=INT()

dp=[0]*50
dp[0]=dp[1]=1
for i in range(2, 50):
    dp[i]=dp[i-1]+dp[i-2]

print(dp[N])

