



import os

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



def       lowercase       (   )  ->     str:
 _snake_case    :  Any					=					os.path.dirname(os.path.realpath(SCREAMING_SNAKE_CASE_				)				)
 _snake_case    :  int					=					os.path.join(SCREAMING_SNAKE_CASE_				,       """words.txt"""				)

 _snake_case    :  Union[str, Any]					=					""""""
 with open(SCREAMING_SNAKE_CASE_				) as f:
  _snake_case    :  int					=					f.readline()

 _snake_case    :  int					=					[word.strip("""\""""				) for word in words.strip("""\r\n"""				).split(""","""				)]
 _snake_case    :  Any					=					[
     word
     for word in [sum(ord(SCREAMING_SNAKE_CASE_				) - 64 for x in word				) for word in words]
     if word in TRIANGULAR_NUMBERS
 ]
 return len(SCREAMING_SNAKE_CASE_				)


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










from math import ceil, sqrt



def       lowercase       (   SCREAMING_SNAKE_CASE__       :	int = 1_000_000				)  ->     int:
 _snake_case    :  Tuple					=					0

 for outer_width in range(3				,       (limit // 4) + 2				):
  if outer_width**2 > limit:
   _snake_case    :  int					=					max(ceil(sqrt(outer_width**2 - limit				)				)				,       1				)
  else:
   _snake_case    :  Any					=					1
  if (outer_width - hole_width_lower_bound) % 2:
   hole_width_lower_bound += 1

  answer += (outer_width - hole_width_lower_bound - 2) // 2 + 1

 return answer


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