# fastfib
# Sections 1-5, Q.11, p.13 and p.246
# input: 13  (see Fig. 2.5)

def u2(n):
  if n == 1:
    return 0, 1
  else:
    u, v = u2(n//2)
    if (n%2 == 1):  # odd
      t = 2*u*v + v*v
      v = v*v + (u+v)*(u+v)
      return t, v
    else:
      t = u*u + v*v
      v = 2*u*v + v*v
      return t, v

n = int(input("n=? "))
u, v = u2(n)
print("u(", n, ") ==", u)
