

def 							A			(  _UpperCAmelCase       :     List[Any]							,     _UpperCAmelCase       :     Dict					)       ->				List[str]:







			'''simple docstring'''
			_UpperCAmelCase	 =     [1]
			for i in range(2							,     _UpperCAmelCase					):
						factorials.append(factorials[-1] * i					)
			assert 0 <= k < factorials[-1] * n, "k out of bounds"

			_UpperCAmelCase	 =     []
			_UpperCAmelCase	 =     list(range(_UpperCAmelCase					)					)

			# Find permutation
			while factorials:
						_UpperCAmelCase	 =     factorials.pop()
						_UpperCAmelCase	 =     divmod(_UpperCAmelCase							,     _UpperCAmelCase					)
						permutation.append(elements[number]					)
						elements.remove(elements[number]					)
			permutation.append(elements[0]					)

			return permutation


if __name__ == "__main__":
							import doctest

							doctest.testmod()





import os

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





def 							A			(  )       ->				List[str]:







			'''simple docstring'''
			_UpperCAmelCase	 =     os.path.dirname(os.path.realpath(_UpperCAmelCase					)					)
			_UpperCAmelCase	 =     os.path.join(_UpperCAmelCase							,     'words.txt'					)

			_UpperCAmelCase	 =     ''
			with open(_UpperCAmelCase					) as f:
						_UpperCAmelCase	 =     f.readline()

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


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