def ballot(x, y):
  if x == 0 and y == 0:
    return 1
  elif x == 0 and y > 0:
    return 0
  elif x > 0 and y == 0:
    return ballot(x - 1, 1)
  elif x > 0 and y > 0:
    return ballot(x - 1, y - 1) + ballot(x - 1, y + 1)
  else:
    raise AssertionError(x, y)


def catalan(n):
  return ballot(2*n, 0)


def main():
  print("BALLOT(x, y):")
  for x in range(0, 10):
    for y in range(0, x + 1):
      print(ballot(x, y), end=" ")
    print()
  print()
  print("CATALAN(n):")
  for n in range(0, 10):
    print(catalan(n), end=" ")
  print()


main()
