n = int(raw_input())
F = [0] * (n+1)



def fibonacci(n):
    global F
    if n == 0 or n == 1:
        F[n] = 1
        return F[n]
    if F[n] != 0:
        return F[n]
    F[n] = fibonacci(n-2) + fibonacci(n-1)
    return F[n]

def makeFibonacci(n):
    global F
    F[0] = 1
    F[1] = 1
    for i in xrange(2,n+1):
        F[i] = makeFibonacci(i-2) + makeFibonacci(i-1)
    return F[n]

def main():
    ans = fibonacci(n)
    print ans
    return 0

main() n = int(raw_input()) n int(raw_input()) int raw_input() raw_input F = [0] * (n+1) F [0] * (n+1) [0] 0 n+1 n 1 def fibonacci(n):
    global F
    if n == 0 or n == 1:
        F[n] = 1
        return F[n]
    if F[n] != 0:
        return F[n]
    F[n] = fibonacci(n-2) + fibonacci(n-1)
    return F[n] fibonacci global F if n == 0 or n == 1:
        F[n] = 1
        return F[n]
     n == 0 or n == 1 n == 0 n 0 n == 1 n 1 F[n] = 1 F[n] F n 1 return F[n] F[n] F n if F[n] != 0:
        return F[n]
     F[n] != 0 F[n] F n 0 return F[n] F[n] F n F[n] = fibonacci(n-2) + fibonacci(n-1) F[n] F n fibonacci(n-2) + fibonacci(n-1) fibonacci(n-2) fibonacci n-2 n 2 fibonacci(n-1) fibonacci n-1 n 1 return F[n] F[n] F n n n def makeFibonacci(n):
    global F
    F[0] = 1
    F[1] = 1
    for i in xrange(2,n+1):
        F[i] = makeFibonacci(i-2) + makeFibonacci(i-1)
    return F[n] makeFibonacci global F F[0] = 1 F[0] F 0 1 F[1] = 1 F[1] F 1 1 for i in xrange(2,n+1):
        F[i] = makeFibonacci(i-2) + makeFibonacci(i-1)
     i xrange(2,n+1) xrange 2 n+1 n 1 F[i] = makeFibonacci(i-2) + makeFibonacci(i-1) F[i] F i makeFibonacci(i-2) + makeFibonacci(i-1) makeFibonacci(i-2) makeFibonacci i-2 i 2 makeFibonacci(i-1) makeFibonacci i-1 i 1 return F[n] F[n] F n n n def main():
    ans = fibonacci(n)
    print ans
    return 0 main ans = fibonacci(n) ans fibonacci(n) fibonacci n print return 0 0 main() main F = [0] * (n+1) [0] * (n+1) F def makeFibonacci(n):
    global F
    F[0] = 1
    F[1] = 1
    for i in xrange(2,n+1):
        F[i] = makeFibonacci(i-2) + makeFibonacci(i-1)
    return F[n] def makeFibonacci(n):
    global F
    F[0] = 1
    F[1] = 1
    for i in xrange(2,n+1):
        F[i] = makeFibonacci(i-2) + makeFibonacci(i-1)
    return F[n] makeFibonacci n = int(raw_input()) int(raw_input()) n def main():
    ans = fibonacci(n)
    print ans
    return 0 def main():
    ans = fibonacci(n)
    print ans
    return 0 main def fibonacci(n):
    global F
    if n == 0 or n == 1:
        F[n] = 1
        return F[n]
    if F[n] != 0:
        return F[n]
    F[n] = fibonacci(n-2) + fibonacci(n-1)
    return F[n] def fibonacci(n):
    global F
    if n == 0 or n == 1:
        F[n] = 1
        return F[n]
    if F[n] != 0:
        return F[n]
    F[n] = fibonacci(n-2) + fibonacci(n-1)
    return F[n] fibonacci
n = int(raw_input())
F = [0] * (n+1)



def fibonacci(n):
    global F
    if n == 0 or n == 1:
        F[n] = 1
        return F[n]
    if F[n] != 0:
        return F[n]
    F[n] = fibonacci(n-2) + fibonacci(n-1)
    return F[n]

def makeFibonacci(n):
    global F
    F[0] = 1
    F[1] = 1
    for i in xrange(2,n+1):
        F[i] = makeFibonacci(i-2) + makeFibonacci(i-1)
    return F[n]

def main():
    ans = fibonacci(n)
    print ans
    return 0

main()