def fib(n):
    if n == 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fib(n - 1) + fib(n - 2)
 
def wrapper(func):
    cache  = {}
 
 
    def inner(n):
        print("Wrapped")
        if n not in cache:
            cache[n] = func(n)
        print(cache[n])
        return cache[n]
    return inner
 
fib = wrapper(fib)

print(fib(5))

print(fib(13))