




"""simple docstring"""







from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding

class 				snake_case_			(					lowerCamelCase_			):







   """simple docstring"""




   A_				      =       ['''image_processor''', '''tokenizer''']
   A_				      =       '''AutoImageProcessor'''
   A_				      =       '''AutoTokenizer'''







   def __init__(		self       ,					lowerCamelCase_       ,					lowerCamelCase_)				->   Tuple:
       super().__init__(lowerCamelCase_       ,					lowerCamelCase_)
       UpperCamelCase              =	self.image_processor







   def __call__(		self       ,					lowerCamelCase_=None       ,					lowerCamelCase_=None       ,					lowerCamelCase_=None       ,					**lowerCamelCase_)				->   str:

       if text is None and images is None:
           raise ValueError('''You have to specify either text or images. Both cannot be none.''')

       if text is not None:
           UpperCamelCase              =	self.tokenizer(lowerCamelCase_       ,					return_tensors=lowerCamelCase_       ,					**lowerCamelCase_)

       if images is not None:
           UpperCamelCase              =	self.image_processor(lowerCamelCase_       ,					return_tensors=lowerCamelCase_       ,					**lowerCamelCase_)

       if text is not None and images is not None:
           UpperCamelCase              =	image_features.pixel_values
           return encoding
       elif text is not None:
           return encoding
       else:
           return BatchEncoding(data=dict(**lowerCamelCase_)       ,					tensor_type=lowerCamelCase_)







   def   UpperCAmelCase__			(		self       ,					*lowerCamelCase_       ,					**lowerCamelCase_)				->   List[str]:
       return self.tokenizer.batch_decode(*lowerCamelCase_       ,					**lowerCamelCase_)







   def   UpperCAmelCase__			(		self       ,					*lowerCamelCase_       ,					**lowerCamelCase_)				->   List[Any]:
       return self.tokenizer.decode(*lowerCamelCase_       ,					**lowerCamelCase_)







   @property
   def   UpperCAmelCase__			(		self)				->   Union[str, Any]:
       return ["input_ids", "attention_mask", "pixel_values"]





'''simple docstring'''

from collections.abc import Generator


def 						__magic_name__       (      )						->   Generator[int, None, None]:

					'''simple docstring'''

					snake_case_     ,snake_case_		     =							0, 1
					while True:
										snake_case_     ,snake_case_		     =							b, a + b
										yield b


def 						__magic_name__       (      __UpperCAmelCase = 1000      )						->   int:

					'''simple docstring'''

					snake_case_		     =							1
					snake_case_		     =							fibonacci_generator()
					while len(str(next(__UpperCAmelCase      )      )      ) < n:
										answer += 1
					return answer + 1


if __name__ == "__main__":
							print(solution(int(str(input()).strip())))

