
from __future__ import annotations

from collections import Counter
from random import random



class    _snake_case :


 def __init__(       self):


   '''simple docstring'''




   lowercase__	: List[Any]     		=   {}


 def   lowercase__  (       self       ,	SCREAMING_SNAKE_CASE_):


   '''simple docstring'''




   lowercase__	: Optional[int]     		=   {}


 def   lowercase__  (       self       ,	SCREAMING_SNAKE_CASE_       ,	SCREAMING_SNAKE_CASE_       ,	SCREAMING_SNAKE_CASE_):


   '''simple docstring'''




   if nodea not in self.connections:
     self.add_node(SCREAMING_SNAKE_CASE_)
   if nodea not in self.connections:
     self.add_node(SCREAMING_SNAKE_CASE_)
   lowercase__	: List[str]     		=   probability


 def   lowercase__  (       self):


   '''simple docstring'''




   return list(self.connections)



 def   lowercase__  (       self       ,	SCREAMING_SNAKE_CASE_):


   '''simple docstring'''




   lowercase__	: Dict     		=   0
   lowercase__	: List[Any]     		=   random()

   for dest in self.connections[node]:
     current_probability += self.connections[node][dest]
     if current_probability > random_value:
       return dest
   return ""

def 		UpperCamelCase						(   lowercase_			,			lowercase_			,			lowercase_ )		->						dict[str, int]:


  '''simple docstring'''






  lowercase__	: List[Any]     		=   MarkovChainGraphUndirectedUnweighted()

  for nodea, nodea, probability in transitions:
    graph.add_transition_probability(lowercase_			,			lowercase_			,			lowercase_ )

  lowercase__	: Union[str, Any]     		=   Counter(graph.get_nodes() )
  lowercase__	: Tuple     		=   start

  for _ in range(lowercase_ ):
    lowercase__	: Optional[Any]     		=   graph.transition(lowercase_ )
    visited[node] += 1

  return visited


if __name__ == "__main__":
     import doctest

     doctest.testmod()










def SCREAMING_SNAKE_CASE	(			__lowerCAmelCase = 100				)    ->				int:
  snake_case__						= set()

  snake_case__						= 0

  snake_case__						= n + 1  # maximum limit

  for a in range(2							,   __lowerCAmelCase				):
    for b in range(2							,   __lowerCAmelCase				):
      snake_case__						= a**b  # calculates the current power
      collect_powers.add(__lowerCAmelCase				)  # adds the result to the set
  return len(__lowerCAmelCase				)


if __name__ == "__main__":
   print("""Number of terms """, solution(int(str(input()).strip())))

