def 					_snake_case	(  __snake_case						):
					_UpperCamelCase			     =     [0] * len(__snake_case						)

					for i in range(1  ,     len(__snake_case						)						):
										# use last results for better performance - dynamic programming
										_UpperCamelCase			     =     prefix_result[i - 1]
										while j > 0 and input_string[i] != input_string[j]:
															_UpperCamelCase			     =     prefix_result[j - 1]

										if input_string[i] == input_string[j]:
															j += 1
										_UpperCamelCase			     =     j

					return prefix_result
def 					_snake_case	(  __snake_case						):
					return max(prefix_function(__snake_case						)						)


if __name__ == "__main__":
					import doctest

					doctest.testmod()


"""simple docstring"""


import os

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






def    _snake_case					(		):
	A     = os.path.dirname(os.path.realpath(snake_case__  )  )
	A     = os.path.join(snake_case__						,   'words.txt'  )

	A     = ''
	with open(snake_case__  ) as f:
		A     = f.readline()

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


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