





import os

# Precomputes a list of the 100 first triangular numbers
snake_case 				=       [int(0.5 * n * (n + 1)) for n in range(1, 1_0_1)]

def 							SCREAMING_SNAKE_CASE__       (  )      ->						Optional[int]:
  _lowercase							= os.path.dirname(os.path.realpath(lowercase__     )     )
  _lowercase							= os.path.join(lowercase__			,							'words.txt'     )

  _lowercase							= ''
  with open(lowercase__     ) as f:
    _lowercase							= f.readline()

  _lowercase							= [word.strip('\"'     ) for word in words.strip('\r\n'     ).split(','     )]
  _lowercase							= [
      word
      for word in [sum(ord(lowercase__     ) - 64 for x in word     ) for word in words]
      if word in TRIANGULAR_NUMBERS
  ]
  return len(lowercase__     )


if __name__ == "__main__":
      print(solution())






from itertools import count

def 							SCREAMING_SNAKE_CASE__       (  snake_case__  :int = 50     )      ->						int:
  _lowercase							= [1] * min_block_length

  for n in count(snake_case__     ):
    fill_count_functions.append(1     )

    for block_length in range(snake_case__			,							n + 1     ):
      for block_start in range(n - block_length     ):
        fill_count_functions[n] += fill_count_functions[
            n - block_start - block_length - 1
        ]

      fill_count_functions[n] += 1

    if fill_count_functions[n] > 100_0000:
      break

  return n


if __name__ == "__main__":
      print(F"""{solution() = }""")