code: import os
  def 		snake_case__       (		):
     lowerCAmelCase_:       int         =  os.path.dirname(os.path.realpath(_SCREAMING_SNAKE_CASE				)				)
     lowerCAmelCase_:       List[Any]         =  os.path.join(_SCREAMING_SNAKE_CASE       ,							"triangle.txt"				)
  
     with open(_SCREAMING_SNAKE_CASE				) as in_file:
        lowerCAmelCase_:       List[Any]         =  [[int(_SCREAMING_SNAKE_CASE				) for i in line.split()] for line in in_file]
  
     while len(_SCREAMING_SNAKE_CASE				) != 1:
        lowerCAmelCase_:       str         =  triangle.pop()
        lowerCAmelCase_:       Dict         =  triangle[-1]
        for j in range(len(_SCREAMING_SNAKE_CASE				) - 1				):
           curr_row[j] += max(last_row[j]       ,							last_row[j + 1]				)
     return triangle[0][0]
  
  
  if __name__ == "__main__":
   print(solution())
style_context: from typing import TYPE_CHECKING
  
  from ..utils import OptionalDependencyNotAvailable, _LazyModule, is_flax_available, is_tf_available, is_torch_available
  
  
  a     :			Optional[Any]					    =						{
      """configuration_utils""": ["""GenerationConfig"""],
      """streamers""": ["""TextIteratorStreamer""", """TextStreamer"""],
  }
  
  try:
   if not is_torch_available():
    raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
   pass
  else:
   a     :			Union[str, Any]					    =						[
       """Constraint""",
       """ConstraintListState""",
       """DisjunctiveConstraint""",
       """PhrasalConstraint""",
   ]
   a     :			Optional[int]					    =						[
       """BeamHypotheses""",
       """BeamScorer""",
       """BeamSearchScorer""",
       """ConstrainedBeamSearchScorer""",
   ]
   a     :			Any					    =						[
       """EpsilonLogitsWarper""",
       """EtaLogitsWarper""",
       """ForcedBOSTokenLogitsProcessor""",
       """ForcedEOSTokenLogitsProcessor""",
       """HammingDiversityLogitsProcessor""",
       """InfNanRemoveLogitsProcessor""",
       """LogitsProcessor""",
       """LogitsProcessorList""",
       """LogitsWarper""",
       """MinLengthLogitsProcessor""",
       """MinNewTokensLengthLogitsProcessor""",
       """NoBadWordsLogitsProcessor""",
       """NoRepeatNGramLogitsProcessor""",
       """PrefixConstrainedLogitsProcessor""",
       """RepetitionPenaltyLogitsProcessor""",
       """SequenceBiasLogitsProcessor""",
       """EncoderRepetitionPenaltyLogitsProcessor""",
       """TemperatureLogitsWarper""",
       """TopKLogitsWarper""",
       """TopPLogitsWarper""",
       """TypicalLogitsWarper""",
       """EncoderNoRepeatNGramLogitsProcessor""",
       """ExponentialDecayLengthPenalty""",
       """LogitNormalization""",
   ]
   a     :			int					    =						[
       """MaxNewTokensCriteria""",
       """MaxLengthCriteria""",
       """MaxTimeCriteria""",
       """StoppingCriteria""",
       """StoppingCriteriaList""",
       """validate_stopping_criteria""",
   ]
   a     :			Dict					    =						[
       """GenerationMixin""",
       """top_k_top_p_filtering""",
       """GreedySearchEncoderDecoderOutput""",
       """GreedySearchDecoderOnlyOutput""",
       """SampleEncoderDecoderOutput""",
       """SampleDecoderOnlyOutput""",
       """BeamSearchEncoderDecoderOutput""",
       """BeamSearchDecoderOnlyOutput""",
       """BeamSampleEncoderDecoderOutput""",
       """BeamSampleDecoderOnlyOutput""",
       """ContrastiveSearchEncoderDecoderOutput""",
       """ContrastiveSearchDecoderOnlyOutput""",
   ]
  
  try:
   if not is_tf_available():
    raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
   pass
  else:
   a     :			Optional[Any]					    =						[
       """TFForcedBOSTokenLogitsProcessor""",
       """TFForcedEOSTokenLogitsProcessor""",
       """TFLogitsProcessor""",
       """TFLogitsProcessorList""",
       """TFLogitsWarper""",
       """TFMinLengthLogitsProcessor""",
       """TFNoBadWordsLogitsProcessor""",
       """TFNoRepeatNGramLogitsProcessor""",
       """TFRepetitionPenaltyLogitsProcessor""",
       """TFTemperatureLogitsWarper""",
       """TFTopKLogitsWarper""",
       """TFTopPLogitsWarper""",
       """TFForceTokensLogitsProcessor""",
       """TFSuppressTokensAtBeginLogitsProcessor""",
       """TFSuppressTokensLogitsProcessor""",
   ]
   a     :			Any					    =						[
       """TFGenerationMixin""",
       """tf_top_k_top_p_filtering""",
       """TFGreedySearchDecoderOnlyOutput""",
       """TFGreedySearchEncoderDecoderOutput""",
       """TFSampleEncoderDecoderOutput""",
       """TFSampleDecoderOnlyOutput""",
       """TFBeamSearchEncoderDecoderOutput""",
       """TFBeamSearchDecoderOnlyOutput""",
       """TFBeamSampleEncoderDecoderOutput""",
       """TFBeamSampleDecoderOnlyOutput""",
       """TFContrastiveSearchEncoderDecoderOutput""",
       """TFContrastiveSearchDecoderOnlyOutput""",
   ]
  
  try:
   if not is_flax_available():
    raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
   pass
  else:
   a     :			Union[str, Any]					    =						[
       """FlaxForcedBOSTokenLogitsProcessor""",
       """FlaxForcedEOSTokenLogitsProcessor""",
       """FlaxLogitsProcessor""",
       """FlaxLogitsProcessorList""",
       """FlaxLogitsWarper""",
       """FlaxMinLengthLogitsProcessor""",
       """FlaxTemperatureLogitsWarper""",
       """FlaxTopKLogitsWarper""",
       """FlaxTopPLogitsWarper""",
   ]
   a     :			Dict					    =						[
       """FlaxGenerationMixin""",
       """FlaxGreedySearchOutput""",
       """FlaxSampleOutput""",
       """FlaxBeamSearchOutput""",
   ]
  
  if TYPE_CHECKING:
   from .configuration_utils import GenerationConfig
   from .streamers import TextIteratorStreamer, TextStreamer
  
   try:
    if not is_torch_available():
     raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
    pass
   else:
    from .beam_constraints import Constraint, ConstraintListState, DisjunctiveConstraint, PhrasalConstraint
    from .beam_search import BeamHypotheses, BeamScorer, BeamSearchScorer, ConstrainedBeamSearchScorer
    from .logits_process import (
        EncoderNoRepeatNGramLogitsProcessor,
        EncoderRepetitionPenaltyLogitsProcessor,
        EpsilonLogitsWarper,
        EtaLogitsWarper,
        ExponentialDecayLengthPenalty,
        ForcedBOSTokenLogitsProcessor,
        ForcedEOSTokenLogitsProcessor,
        HammingDiversityLogitsProcessor,
        InfNanRemoveLogitsProcessor,
        LogitNormalization,
        LogitsProcessor,
        LogitsProcessorList,
        LogitsWarper,
        MinLengthLogitsProcessor,
        MinNewTokensLengthLogitsProcessor,
        NoBadWordsLogitsProcessor,
        NoRepeatNGramLogitsProcessor,
        PrefixConstrainedLogitsProcessor,
        RepetitionPenaltyLogitsProcessor,
        SequenceBiasLogitsProcessor,
        TemperatureLogitsWarper,
        TopKLogitsWarper,
        TopPLogitsWarper,
        TypicalLogitsWarper,
    )
    from .stopping_criteria import (
        MaxLengthCriteria,
        MaxNewTokensCriteria,
        MaxTimeCriteria,
        StoppingCriteria,
        StoppingCriteriaList,
        validate_stopping_criteria,
    )
    from .utils import (
        BeamSampleDecoderOnlyOutput,
        BeamSampleEncoderDecoderOutput,
        BeamSearchDecoderOnlyOutput,
        BeamSearchEncoderDecoderOutput,
        ContrastiveSearchDecoderOnlyOutput,
        ContrastiveSearchEncoderDecoderOutput,
        GenerationMixin,
        GreedySearchDecoderOnlyOutput,
        GreedySearchEncoderDecoderOutput,
        SampleDecoderOnlyOutput,
        SampleEncoderDecoderOutput,
        top_k_top_p_filtering,
    )
  
   try:
    if not is_tf_available():
     raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
    pass
   else:
    from .tf_logits_process import (
        TFForcedBOSTokenLogitsProcessor,
        TFForcedEOSTokenLogitsProcessor,
        TFForceTokensLogitsProcessor,
        TFLogitsProcessor,
        TFLogitsProcessorList,
        TFLogitsWarper,
        TFMinLengthLogitsProcessor,
        TFNoBadWordsLogitsProcessor,
        TFNoRepeatNGramLogitsProcessor,
        TFRepetitionPenaltyLogitsProcessor,
        TFSuppressTokensAtBeginLogitsProcessor,
        TFSuppressTokensLogitsProcessor,
        TFTemperatureLogitsWarper,
        TFTopKLogitsWarper,
        TFTopPLogitsWarper,
    )
    from .tf_utils import (
        TFBeamSampleDecoderOnlyOutput,
        TFBeamSampleEncoderDecoderOutput,
        TFBeamSearchDecoderOnlyOutput,
        TFBeamSearchEncoderDecoderOutput,
        TFContrastiveSearchDecoderOnlyOutput,
        TFContrastiveSearchEncoderDecoderOutput,
        TFGenerationMixin,
        TFGreedySearchDecoderOnlyOutput,
        TFGreedySearchEncoderDecoderOutput,
        TFSampleDecoderOnlyOutput,
        TFSampleEncoderDecoderOutput,
        tf_top_k_top_p_filtering,
    )
  
   try:
    if not is_flax_available():
     raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
    pass
   else:
    from .flax_logits_process import (
        FlaxForcedBOSTokenLogitsProcessor,
        FlaxForcedEOSTokenLogitsProcessor,
        FlaxLogitsProcessor,
        FlaxLogitsProcessorList,
        FlaxLogitsWarper,
        FlaxMinLengthLogitsProcessor,
        FlaxTemperatureLogitsWarper,
        FlaxTopKLogitsWarper,
        FlaxTopPLogitsWarper,
    )
    from .flax_utils import FlaxBeamSearchOutput, FlaxGenerationMixin, FlaxGreedySearchOutput, FlaxSampleOutput
  else:
   import sys
  
   a     :			str					    =						_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)