
from arguments import TokenizerTrainingArguments
from datasets import load_dataset
from tqdm import tqdm

from transformers import AutoTokenizer, HfArgumentParser
from transformers.models.gpta.tokenization_gpta import bytes_to_unicode


def       UpperCAmelCase__							(    __magic_name__  :       str=10					):


					'''simple docstring'''

					for _ in tqdm(range(0							,					args.n_examples							,					__magic_name__					)					):
										yield [next(__magic_name__					)[args.text_column] for _ in range(__magic_name__					)]


# Configuration
__SCREAMING_SNAKE_CASE     :				Dict             =       HfArgumentParser(TokenizerTrainingArguments)
__SCREAMING_SNAKE_CASE     :				str             =       parser.parse_args()

# Base tokenizer
__SCREAMING_SNAKE_CASE     :				Tuple             =       AutoTokenizer.from_pretrained(args.base_tokenizer)
__SCREAMING_SNAKE_CASE     :				List[str]             =       list(bytes_to_unicode().values())

# Load dataset
__SCREAMING_SNAKE_CASE     :				Union[str, Any]             =       load_dataset(args.dataset_name, split='train', streaming=True)
__SCREAMING_SNAKE_CASE     :				Any             =       iter(dataset)


# Training and saving
__SCREAMING_SNAKE_CASE     :				Optional[int]             =       tokenizer.train_new_from_iterator(
    batch_iterator(), vocab_size=args.vocab_size, initial_alphabet=base_vocab
)
new_tokenizer.save_pretrained(args.tokenizer_name, push_to_hub=args.push_to_hub)


from math import floor, sqrt
def       UpperCAmelCase__							(    __magic_name__  :       int					):


					'''simple docstring'''

					lowerCAmelCase						:   int							=       0.0
					lowerCAmelCase						:   int							=       1.0
					lowerCAmelCase						:   Any							=       int(sqrt(__magic_name__					)					)
					lowerCAmelCase						:   Optional[int]							=       root
					lowerCAmelCase						:   Dict							=       0
					while integer_part != 2 * root:
										lowerCAmelCase						:   str							=       denominator * integer_part - numerator
										lowerCAmelCase						:   Dict							=       (n - numerator**2) / denominator
										lowerCAmelCase						:   str							=       int((root + numerator) / denominator					)
										period += 1
					return period
def       UpperCAmelCase__							(    __magic_name__  :       int = 1_00_00					):


					'''simple docstring'''

					lowerCAmelCase						:   List[str]							=       0
					for i in range(2							,					n + 1					):
										lowerCAmelCase						:   Any							=       sqrt(__magic_name__					)
										if sr - floor(__magic_name__					) != 0 and continuous_fraction_period(__magic_name__					) % 2 == 1:
															count_odd_periods += 1
					return count_odd_periods


if __name__ == "__main__":
		print(f"""{solution(int(input().strip()))}""")
