
# coupled_recurrences
# Fig. 61.2
# input: 17

def x(n):
  return 2*y(n) + 2*z(n) + u(n)

def y(n):
  if n == 1:
    return 1
  else:
    return z(n-1)

def z(n):
  if n == 1:
    return 1
  else:
    return y(n-1) + u(n-1)

def u(n):
  if n == 1:
    return 1
  else:
    return 2*z(n-1)


n = int(input("n=? "))
print("   n    x(n)   y(n)   z(n)  u(n)")
for i in range(1,n+1):
  print(f"{i:4} {x(i):6} {y(i):5}  {z(i):5} {u(i):5}")

