




import os






def 	a_		(	)			->  Union[str, Any]:
			_snake_case          =      os.path.dirname(os.path.realpath(__lowercase			)			)
			_snake_case          =      os.path.join(__lowercase	, 'triangle.txt'			)

			with open(__lowercase			) as f:
						_snake_case          =      f.readlines()

			_snake_case          =      []
			for line in triangle:
						_snake_case          =      []
						for number in line.strip().split(' '			):
									numbers_from_line.append(int(__lowercase			)			)
						a.append(__lowercase			)

			for i in range(1	, len(__lowercase			)			):
						for j in range(len(a[i]			)			):
									_snake_case          =      a[i - 1][j] if j != len(a[i - 1]			) else 0
									_snake_case          =      a[i - 1][j - 1] if j > 0 else 0
									a[i][j] += max(__lowercase	, __lowercase			)
			return max(a[-1]			)


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

def 	a_		(	__lowercase       :     int = 50_000_000			)			->  int:
			_snake_case          =      set()
			_snake_case          =      int((limit - 24) ** (1 / 2)			)

			_snake_case          =      set(range(3	, prime_square_limit + 1	, 2			)			)
			primes.add(2			)
			for p in range(3	, prime_square_limit + 1	, 2			):
						if p not in primes:
									continue
						primes.difference_update(set(range(p * p	, prime_square_limit + 1	, __lowercase			)			)			)

			for primea in primes:
						_snake_case          =      primea * primea
						for primea in primes:
									_snake_case          =      primea * primea * primea
									if square + cube >= limit - 16:
												break
									for primea in primes:
												_snake_case          =      primea * primea * primea * primea
												_snake_case          =      square + cube + tetr
												if total >= limit:
															break
												ret.add(__lowercase			)

			return len(__lowercase			)


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