






"""simple docstring"""





from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_SCREAMING_SNAKE_CASE					:				Dict					    =						logging.get_logger(__name__)

_SCREAMING_SNAKE_CASE					:				Optional[Any]					    =						{
    '''kssteven/ibert-roberta-base''': '''https://huggingface.co/kssteven/ibert-roberta-base/resolve/main/config.json''',
    '''kssteven/ibert-roberta-large''': '''https://huggingface.co/kssteven/ibert-roberta-large/resolve/main/config.json''',
    '''kssteven/ibert-roberta-large-mnli''': (
        '''https://huggingface.co/kssteven/ibert-roberta-large-mnli/resolve/main/config.json'''
    ),
}






class      a						(					__snake_case		):
    SCREAMING_SNAKE_CASE						:     Optional[int]						= """ibert"""






    def __init__(       self     :							Dict       ,						__SCREAMING_SNAKE_CASE     :							Optional[Any]=30522       ,						__SCREAMING_SNAKE_CASE     :							Tuple=768       ,						__SCREAMING_SNAKE_CASE     :							List[str]=12       ,						__SCREAMING_SNAKE_CASE     :							Dict=12       ,						__SCREAMING_SNAKE_CASE     :							List[str]=3072       ,						__SCREAMING_SNAKE_CASE     :							Tuple="gelu"       ,						__SCREAMING_SNAKE_CASE     :							Optional[Any]=0.1       ,						__SCREAMING_SNAKE_CASE     :							Optional[Any]=0.1       ,						__SCREAMING_SNAKE_CASE     :							Optional[int]=512       ,						__SCREAMING_SNAKE_CASE     :							Tuple=2       ,						__SCREAMING_SNAKE_CASE     :							int=0.02       ,						__SCREAMING_SNAKE_CASE     :							List[Any]=1e-1_2       ,						__SCREAMING_SNAKE_CASE     :							List[Any]=1       ,						__SCREAMING_SNAKE_CASE     :							int=0       ,						__SCREAMING_SNAKE_CASE     :							str=2       ,						__SCREAMING_SNAKE_CASE     :							List[str]="absolute"       ,						__SCREAMING_SNAKE_CASE     :							int=False       ,						__SCREAMING_SNAKE_CASE     :							Any="none"       ,						**__SCREAMING_SNAKE_CASE     :							Union[str, Any]       ,						)     ->		Optional[int]:
      super().__init__(pad_token_id=__SCREAMING_SNAKE_CASE       ,						bos_token_id=__SCREAMING_SNAKE_CASE       ,						eos_token_id=__SCREAMING_SNAKE_CASE       ,						**__SCREAMING_SNAKE_CASE					)

      lowerCamelCase_         =						vocab_size
      lowerCamelCase_         =						hidden_size
      lowerCamelCase_         =						num_hidden_layers
      lowerCamelCase_         =						num_attention_heads
      lowerCamelCase_         =						hidden_act
      lowerCamelCase_         =						intermediate_size
      lowerCamelCase_         =						hidden_dropout_prob
      lowerCamelCase_         =						attention_probs_dropout_prob
      lowerCamelCase_         =						max_position_embeddings
      lowerCamelCase_         =						type_vocab_size
      lowerCamelCase_         =						initializer_range
      lowerCamelCase_         =						layer_norm_eps
      lowerCamelCase_         =						position_embedding_type
      lowerCamelCase_         =						quant_mode
      lowerCamelCase_         =						force_dequant






class      a						(					__snake_case		):






    @property
    def    UpperCamelCase       (       self     :							List[Any]					)     ->		Mapping[str, Mapping[int, str]]:
      if self.task == "multiple-choice":
        lowerCamelCase_         =						{0: 'batch', 1: 'choice', 2: 'sequence'}
      else:
        lowerCamelCase_         =						{0: 'batch', 1: 'sequence'}
      return OrderedDict(
          [
              ('input_ids', dynamic_axis),
              ('attention_mask', dynamic_axis),
          ]					)












"""simple docstring"""





def      lowerCamelCase__       (							_lowerCamelCase       :		int		,				_lowerCamelCase       :		int )      ->				int:
  lowerCamelCase_         =						1  # To kept the Calculated Value
  # Since C(n, k) = C(n, n-k)
  if k > (n - k):
    lowerCamelCase_         =						n - k
  # Calculate C(n,k)
  for i in range(_lowerCamelCase ):
    result *= n - i
    result //= i + 1
  return result







def      lowerCamelCase__       (							_lowerCamelCase       :		int )      ->				int:
  return binomial_coefficient(2 * node_count		,				_lowerCamelCase ) // (node_count + 1)







def      lowerCamelCase__       (							_lowerCamelCase       :		int )      ->				int:
  if n < 0:
    raise ValueError('factorial() not defined for negative values' )
  lowerCamelCase_         =						1
  for i in range(1		,				n + 1 ):
    result *= i
  return result







def      lowerCamelCase__       (							_lowerCamelCase       :		int )      ->				int:
  return catalan_number(_lowerCamelCase ) * factorial(_lowerCamelCase )


if __name__ == "__main__":
  _SCREAMING_SNAKE_CASE					:				int					    =						int(input('''Enter the number of nodes: ''').strip() or 0)
  if node_count <= 0:
    raise ValueError('''We need some nodes to work with.''')
  print(
      F'''Given {node_count} nodes, there are {binary_tree_count(node_count)} '''
      F'''binary trees and {catalan_number(node_count)} binary search trees.'''
  )




