
import os


def 							SCREAMING_SNAKE_CASE_      (			):
      UpperCamelCase__    :   Any					=				os.path.dirname(os.path.realpath(UpperCamelCase__		)		)
      UpperCamelCase__    :   Tuple					=				os.path.join(UpperCamelCase__ ,		'''triangle.txt'''		)

      with open(UpperCamelCase__		) as f:
            UpperCamelCase__    :   Union[str, Any]					=				f.readlines()

      UpperCamelCase__    :   List[Any]					=				[]
      for line in triangle:
            UpperCamelCase__    :   List[Any]					=				[]
            for number in line.strip().split(''' '''		):
                  numbers_from_line.append(int(UpperCamelCase__		)		)
            a.append(UpperCamelCase__		)

      for i in range(1 ,		len(UpperCamelCase__		)		):
            for j in range(len(a[i]		)		):
                  UpperCamelCase__    :   Union[str, Any]					=				a[i - 1][j] if j != len(a[i - 1]		) else 0
                  UpperCamelCase__    :   List[str]					=				a[i - 1][j - 1] if j > 0 else 0
                  a[i][j] += max(UpperCamelCase__ ,		UpperCamelCase__		)
      return max(a[-1]		)


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




import torch
from transformers import PreTrainedModel, XLMRobertaConfig, XLMRobertaModel




class 				_lowerCamelCase (      UpperCamelCase_ ):





     """simple docstring"""







     SCREAMING_SNAKE_CASE_		   =  '''M-CLIP'''






     def __init__(							self						,						__SCREAMING_SNAKE_CASE=1_0_2_4						,						__SCREAMING_SNAKE_CASE=7_6_8						,						**__SCREAMING_SNAKE_CASE  )  ->   List[Any]:




           """simple docstring"""







           UpperCamelCase__    :   Dict					=				transformerDimSize
           UpperCamelCase__    :   Any					=				imageDimSize
           super().__init__(**__SCREAMING_SNAKE_CASE  )




class 				_lowerCamelCase (      UpperCamelCase_ ):





     """simple docstring"""







     SCREAMING_SNAKE_CASE_		   =  MCLIPConfig






     def __init__(							self						,						__SCREAMING_SNAKE_CASE						,						*__SCREAMING_SNAKE_CASE						,						**__SCREAMING_SNAKE_CASE  )  ->   Optional[int]:




           """simple docstring"""







           super().__init__(__SCREAMING_SNAKE_CASE						,						*__SCREAMING_SNAKE_CASE						,						**__SCREAMING_SNAKE_CASE  )
           UpperCamelCase__    :   Union[str, Any]					=				XLMRobertaModel(__SCREAMING_SNAKE_CASE  )
           UpperCamelCase__    :   Tuple					=				torch.nn.Linear(
               in_features=config.transformerDimensions						,						out_features=config.numDims  )






     def    __SCREAMING_SNAKE_CASE			(							self						,						__SCREAMING_SNAKE_CASE						,						__SCREAMING_SNAKE_CASE  )  ->   List[str]:




           """simple docstring"""







           UpperCamelCase__    :   Tuple					=				self.transformer(input_ids=__SCREAMING_SNAKE_CASE						,						attention_mask=__SCREAMING_SNAKE_CASE  )[0]
           UpperCamelCase__    :   Tuple					=				(embs * attention_mask.unsqueeze(2  )).sum(dim=1  ) / attention_mask.sum(dim=1  )[:, None]
           return self.LinearTransformation(__SCREAMING_SNAKE_CASE  ), embs


