import sys
import math
from collections import defaultdict, deque
from copy import deepcopy
    
input = sys.stdin.readline
def RD(): return input().rstrip()
def F(): return float(input().rstrip())
def I(): return int(input().rstrip())
def MI(): return map(int, input().split())
def MF(): return map(float,input().split())
def LI(): return list(map(int, input().split()))
def LF(): return list(map(float,input().split()))
def Init(H, W, num): return [[num for i in range(W)] for j in range(H)]
    
def fib(num):
    d = defaultdict(int)
    d[0] = 1
    d[1] = 1
    if num <= 1:
        return d[num]
    else:
        for i in range(1,num):
            d[i+1] = d[i]+d[i-1]
        return d[num]
    
    
    
def main():
    num = I()
    print(fib(num))
    
if __name__ == "__main__":
    main() import sys sys import math math from collections import defaultdict, deque from copy import deepcopy input = sys.stdin.readline input sys.stdin.readline sys.stdin sys stdin readline def RD(): return input().rstrip() RD def F(): return float(input().rstrip()) F def I(): return int(input().rstrip()) I def MI(): return map(int, input().split()) MI def MF(): return map(float,input().split()) MF def LI(): return list(map(int, input().split())) LI def LF(): return list(map(float,input().split())) LF [num for i in range(W)] for j in range(H) for j in range(H) j range(H) range H for j in range(H) [num for i in range(W)] def Init(H, W, num): return [[num for i in range(W)] for j in range(H)]
     Init H H W W num num def fib(num):
    d = defaultdict(int)
    d[0] = 1
    d[1] = 1
    if num <= 1:
        return d[num]
    else:
        for i in range(1,num):
            d[i+1] = d[i]+d[i-1]
        return d[num]
    
    
     fib d = defaultdict(int) d defaultdict(int) defaultdict int d[0] = 1 d[0] d 0 1 d[1] = 1 d[1] d 1 1 if num <= 1:
        return d[num]
    else:
        for i in range(1,num):
            d[i+1] = d[i]+d[i-1]
        return d[num]
    
    
     num <= 1 num 1 return d[num] d[num] d num for i in range(1,num):
            d[i+1] = d[i]+d[i-1]
         i range(1,num) range 1 num d[i+1] = d[i]+d[i-1] d[i+1] d i+1 i 1 d[i]+d[i-1] d[i] d i d[i-1] d i-1 i 1 return d[num] d[num] d num num num def main():
    num = I()
    print(fib(num))
     main num = I() num I() I print(fib(num)) print fib(num) fib num if __name__ == "__main__":
    main() __name__ == "__main__" __name__ "__main__" main() main def MF(): return map(float,input().split()) def MF(): return map(float,input().split()) MF def fib(num):
    d = defaultdict(int)
    d[0] = 1
    d[1] = 1
    if num <= 1:
        return d[num]
    else:
        for i in range(1,num):
            d[i+1] = d[i]+d[i-1]
        return d[num]
    
    
     def fib(num):
    d = defaultdict(int)
    d[0] = 1
    d[1] = 1
    if num <= 1:
        return d[num]
    else:
        for i in range(1,num):
            d[i+1] = d[i]+d[i-1]
        return d[num]
    
    
     fib def RD(): return input().rstrip() def RD(): return input().rstrip() RD def LI(): return list(map(int, input().split())) def LI(): return list(map(int, input().split())) LI def I(): return int(input().rstrip()) def I(): return int(input().rstrip()) I def main():
    num = I()
    print(fib(num))
     def main():
    num = I()
    print(fib(num))
     main def LF(): return list(map(float,input().split())) def LF(): return list(map(float,input().split())) LF input = sys.stdin.readline sys.stdin.readline input def F(): return float(input().rstrip()) def F(): return float(input().rstrip()) F def MI(): return map(int, input().split()) def MI(): return map(int, input().split()) MI def Init(H, W, num): return [[num for i in range(W)] for j in range(H)]
     def Init(H, W, num): return [[num for i in range(W)] for j in range(H)]
     Init
import sys
import math
from collections import defaultdict, deque
from copy import deepcopy
    
input = sys.stdin.readline
def RD(): return input().rstrip()
def F(): return float(input().rstrip())
def I(): return int(input().rstrip())
def MI(): return map(int, input().split())
def MF(): return map(float,input().split())
def LI(): return list(map(int, input().split()))
def LF(): return list(map(float,input().split()))
def Init(H, W, num): return [[num for i in range(W)] for j in range(H)]
    
def fib(num):
    d = defaultdict(int)
    d[0] = 1
    d[1] = 1
    if num <= 1:
        return d[num]
    else:
        for i in range(1,num):
            d[i+1] = d[i]+d[i-1]
        return d[num]
    
    
    
def main():
    num = I()
    print(fib(num))
    
if __name__ == "__main__":
    main()
