





'''simple docstring'''



import unittest
from dataclasses import dataclass
from typing import Optional

from transformers.utils import ModelOutput

@dataclass
class     A_ (  lowerCAmelCase_  ):

			'''simple docstring'''





			_lowerCAmelCase						=    42
			_lowerCAmelCase						=    None
			_lowerCAmelCase						=    None




class     A_ (  unittest.TestCase  ):

			'''simple docstring'''





			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest(a=30   )
								self.assertEqual(x.a			,     30   )
								self.assertIsNone(x.b   )
								self.assertIsNone(x.c   )
								with self.assertRaises(A_   ):
													_UpperCamelCase											=   x.d




			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest(a=30			,     b=10   )
								self.assertEqual(x[0]			,     30   )
								self.assertEqual(x[1]			,     10   )
								self.assertEqual(x[:2]			,     (30, 10)   )
								self.assertEqual(x[:]			,     (30, 10)   )

								_UpperCamelCase											=   ModelOutputTest(a=30			,     c=10   )
								self.assertEqual(x[0]			,     30   )
								self.assertEqual(x[1]			,     10   )
								self.assertEqual(x[:2]			,     (30, 10)   )
								self.assertEqual(x[:]			,     (30, 10)   )




			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest(a=30			,     b=10   )
								self.assertEqual(x["a"]			,     30   )
								self.assertEqual(x["b"]			,     10   )
								with self.assertRaises(A_   ):
													_UpperCamelCase											=   x["c"]

								_UpperCamelCase											=   ModelOutputTest(a=30			,     c=10   )
								self.assertEqual(x["a"]			,     30   )
								self.assertEqual(x["c"]			,     10   )
								with self.assertRaises(A_   ):
													_UpperCamelCase											=   x["b"]




			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest(a=30   )
								self.assertEqual(list(x.keys()   )			,     ["a"]   )
								self.assertEqual(list(x.values()   )			,     [30]   )
								self.assertEqual(list(x.items()   )			,     [("a", 30)]   )
								self.assertEqual(list(A_   )			,     ["a"]   )

								_UpperCamelCase											=   ModelOutputTest(a=30			,     b=10   )
								self.assertEqual(list(x.keys()   )			,     ["a", "b"]   )
								self.assertEqual(list(x.values()   )			,     [30, 10]   )
								self.assertEqual(list(x.items()   )			,     [("a", 30), ("b", 10)]   )
								self.assertEqual(list(A_   )			,     ["a", "b"]   )

								_UpperCamelCase											=   ModelOutputTest(a=30			,     c=10   )
								self.assertEqual(list(x.keys()   )			,     ["a", "c"]   )
								self.assertEqual(list(x.values()   )			,     [30, 10]   )
								self.assertEqual(list(x.items()   )			,     [("a", 30), ("c", 10)]   )
								self.assertEqual(list(A_   )			,     ["a", "c"]   )

								with self.assertRaises(A_   ):
													_UpperCamelCase											=   x.update({"d": 20}   )
								with self.assertRaises(A_   ):
													del x["a"]
								with self.assertRaises(A_   ):
													_UpperCamelCase											=   x.pop("a"   )
								with self.assertRaises(A_   ):
													_UpperCamelCase											=   x.setdefault("d"			,     32   )




			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest(a=30   )
								_UpperCamelCase											=   10
								self.assertEqual(x.a			,     10   )
								self.assertEqual(x["a"]			,     10   )




			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest(a=30   )
								_UpperCamelCase											=   10
								self.assertEqual(x.a			,     10   )
								self.assertEqual(x["a"]			,     10   )




			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest({"a": 30, "b": 10}   )
								self.assertEqual(list(x.keys()   )			,     ["a", "b"]   )
								self.assertEqual(x.a			,     30   )
								self.assertEqual(x.b			,     10   )




			def       a	(					self   ):
								_UpperCamelCase											=   ModelOutputTest([("a", 30), ("b", 10)]   )
								self.assertEqual(list(x.keys()   )			,     ["a", "b"]   )
								self.assertEqual(x.a			,     30   )
								self.assertEqual(x.b			,     10   )

								with self.assertRaises(A_   ):
													_UpperCamelCase											=   ModelOutputTest([("a", 30), (10, 10)]   )

								_UpperCamelCase											=   ModelOutputTest(a=(30, 30)   )
								self.assertEqual(list(x.keys()   )			,     ["a"]   )
								self.assertEqual(x.a			,     (30, 30)   )










'''simple docstring'''



from __future__ import annotations



def  lowercase__(		_UpperCamelCase  : list[list[int]] ,   _UpperCamelCase  : int ,   _UpperCamelCase  : int ,   _UpperCamelCase  : int | float				)->   None:






					"""simple docstring"""

					_UpperCamelCase				,	_UpperCamelCase											=   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  lowercase__(		)->   None:






					"""simple docstring"""

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


if __name__ == "__main__":
			import doctest

			doctest.testmod()
			main()



