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

def fib(n):
    global f
    for i in range(2,n+1):
        f[i] = f[i - 1] + f[i - 2]
        #print(i,f[i])
    return f[n]

if __name__ == "__main__":
    n = input()
    n = int(n)
    #print(type(n))
    print(fib(n))
 -1 for i in range(45) for i in range(45) i range(45) range 45 for i in range(45) -1 f = [-1 for i in range(45)] f [-1 for i in range(45)] f[0] = f[1] = 1 f[0] f 0 1 = f[1] = 1 f[1] f 1 1 def fib(n):
    global f
    for i in range(2,n+1):
        f[i] = f[i - 1] + f[i - 2]
        #print(i,f[i])
    return f[n] fib global f for i in range(2,n+1):
        f[i] = f[i - 1] + f[i - 2]
        #print(i,f[i])
     i range(2,n+1) range 2 n+1 n 1 f[i] = f[i - 1] + f[i - 2] f[i] f i f[i - 1] + f[i - 2] f[i - 1] f i - 1 i 1 f[i - 2] f i - 2 i 2 return f[n] f[n] f n n n if __name__ == "__main__":
    n = input()
    n = int(n)
    #print(type(n))
    print(fib(n)) __name__ == "__main__" __name__ "__main__" n = input() n input() input n = int(n) n int(n) int n print(fib(n)) print fib(n) fib n n = input() input() n f = [-1 for i in range(45)] [-1 for i in range(45)] f n = int(n) int(n) n def fib(n):
    global f
    for i in range(2,n+1):
        f[i] = f[i - 1] + f[i - 2]
        #print(i,f[i])
    return f[n] def fib(n):
    global f
    for i in range(2,n+1):
        f[i] = f[i - 1] + f[i - 2]
        #print(i,f[i])
    return f[n] fib

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

def fib(n):
    global f
    for i in range(2,n+1):
        f[i] = f[i - 1] + f[i - 2]
        #print(i,f[i])
    return f[n]

if __name__ == "__main__":
    n = input()
    n = int(n)
    #print(type(n))
    print(fib(n))

