

from __future__ import annotations




def        __UpperCamelCase     (      _A					:							List[Any]      ,  _A					:							Any      ,  _A					:							Optional[Any]      ,  _A					:							Optional[int]		)				->Dict:



							"""simple docstring"""
							lowerCamelCase_	,   lowerCamelCase_								=m - 1, 0
							while i >= 0 and j < n:
														if key == mat[i][j]:
																					print(f'Key {key} found at row- {i + 1} column- {j + 1}'		)
																					return
														if key < mat[i][j]:
																					i -= 1
														else:
																					j += 1
							print(f'Key {key} not found'		)




def        __UpperCamelCase     (      )				->Union[str, Any]:



							"""simple docstring"""
							lowerCamelCase_								=[[2, 5, 7], [4, 8, 13], [9, 11, 15], [12, 17, 20]]
							lowerCamelCase_								=int(input("""Enter the element to be searched:"""		)		)
							print(lowercase__		)
							search_in_a_sorted_matrix(lowercase__      ,  len(lowercase__		)      ,  len(mat[0]		)      ,  lowercase__		)


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	main()





'''simple docstring'''


from dataclasses import dataclass
from typing import Callable, Optional

import datasets







@dataclass
class 						UpperCAmelCase						(		datasets.BuilderConfig):


 '''simple docstring'''




 __magic_name__       :			Optional[Callable]	=   None
 __magic_name__       :			Optional[dict]	=   None
 __magic_name__       :			Optional[datasets.Features]	=   None




 def    lowercase_	( self)			->   List[Any]:



      """simple docstring"""







      assert self.generator is not None, "generator must be specified"

      if self.gen_kwargs is None:
           a_									={}







class 						UpperCAmelCase						(		datasets.GeneratorBasedBuilder):


 '''simple docstring'''




 __magic_name__       :			Tuple	=   GeneratorConfig




 def    lowercase_	( self)			->   Tuple:



      """simple docstring"""







      return datasets.DatasetInfo(features=self.config.features)




 def    lowercase_	( self				,	lowerCAmelCase_)			->   int:



      """simple docstring"""







      return [datasets.SplitGenerator(name=datasets.Split.TRAIN				,	gen_kwargs=self.config.gen_kwargs)]




 def    lowercase_	( self				,	**lowerCAmelCase_)			->   List[Any]:



      """simple docstring"""







      for idx, ex in enumerate(self.config.generator(**lowerCAmelCase_)):
           yield idx, ex


