..''''''''''::::::;;--------;;::''''......    ..              ..........''''''..''''''::::;;--""""""!!!!!!!!!!""""""--;;::''''''''''''....  
..''''''''''::::;;;;------;;::''''......                          ........''''''........''::::--""""""!!""""""""""""--;;::::::''''''''''..  
......''''::::;;;;;;--;;;;::''''......                        ....  ....  ........    ..''''::::;;""""!!!!!!""""""""--;;::::::::::::''''..  
......''''::::;;;;;;;;;;::''''''......  ....                                  ..    ......''''::::--""""""""""!!!!!!------::::::::::''''..  
....''''''::::;;;;;;;;::::''''''..............                                            ..::::::::--""""""!!!!!!""-->>"";;----::::::''....
....''''''::::;;;;;;::''''''''''..........  ..                                            ..''''''::;;--""""""""""""""??>>;;""!!;;::::''....
......''''''::::::::::''''''''......    ....                                            ..::''''::::;;----""""""""""""77>>;;""!!;;::::''''..
....''''''::::;;::::::::''''........  ......                            ............::'';;::'';;""--""--""""!!!!""""!!CC>>--""!!;;::::::''..
....''''''::::::::::::::''''..        ..''''..                          ......'''';;--------""!!!!!!!!!!""!!>>!!!!"">>CC!!--"""";;::::::''..
....''''::::::::::::::''''''....  ........''..                        ......''''::------""!!!!>>>>>>>>!!!!>>>>>>!!""??77""--"""";;;;;;::''..
....''''::::::::::::::''''''..  ............            ........    ....'';;;;::--""""!!!!>>77CC77??777777>>>>!!!!""7777----"""";;;;;;::''''
....''''::::::::''::::''''''..........................................'';;""""""""""""""??CCHHHHHHCC77CCHHCC!!!!!!""77??--""!!----;;;;;;::''
....''''::::::::::::''''''''''..''''................................'';;--""""""--;;--??HHQQQQQQHH$$CC77$$OO77!!!!""77??--""!!----;;;;;;::''
....''''''::::::::::''''''''''::''''..............  ..........''::--""""""""""""""-->>OOQQNNNNQQNNNNNNNNOOOOHH??""!!CC>>--""!!------;;;;::''
....''''''::::::::::''::''::::::''......''................''::::::--------""""----!!HHNNNNNNQQQQNNNNNNNNNNQQHHCC!!!!CC??""--""--------;;::''
  ..''''''::::::::''''''''::::::''''''..''............''::::::::;;::::;;----""""!!??$$CCCC7777??77CC$$$$HHHHOOHH????CC>>""--""--""--""--;;::
  ..''''''::''::::''''''''''::::''::''''''........  ..::;;;;::'''''';;------""!!>>>>!!!!!!!!""--!!!!>>!!??>>77$$CC7777!!""--""""""------;;::
  ....''''::''::::''''''''''::::''''''''''......  ..''::::::::''::::;;------!!!!!!>>>>>>>>!!""--""""""""!!!!""""""????!!----""""""""""--;;::
  ....''''::''''''''''''''''''::''''''''''..............''::::::::;;----"">>>>??CCCC$$$$CCCC!!""""!!!!>>>>>>------??>>"";;--""""""""""--;;::
......''''::''''''''''''''''''''''::''''''........  ..''''::::;;;;--""!!??77$$OOOOQQQQQQQQOO$$CCCCCCCCCCCCCC>>""""77>>"";;--""""""""""""--;;
  ..''''''''''''''''''''''''''''''..''''......      ..''''''::;;--""!!??CCHHQQNNNNNNNNNNNNQQQQQQQQQQQQQQNNQQHHCC77CC>>--;;""""""""""""""--;;
  ....''''''''''::::''''''''''''''..''''......      ..''''''::;;--!!77$$OONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNQQHHCC>>--;;!!""""""""""----;;
......''''''''''::::::::''''''''''''''''....      ....''::::;;--""77HHQQNNNNNNNNNNNNNNNNNNNNNNMMMMMMMMNNMMMMNNNNQQCC>>----??>>""!!""""----;;
......''''''''''::::::::::''''''..........        ..''''::::;;--77OONNNNNNNNMMMMMMNNNNNNMMMMMMMMMMMMMMNNMMMMMMMMOOCC>>----CC??!!""""""""--;;
......''''''''::::::::::::::''........          ....''''::;;--??HHNNNNNNNNNNNNMMNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMHHCC>>--""$$CC??!!""!!"""";;
..''''''::::::::::::;;::::::::''      ..    ......''''::;;--!!HHNNNNNNNNNNMMMMMMMMNNMMMMMMMMMMMMMMMMMMMMMMMMMMNNHHCC>>""--!!CCCC>>!!!!"""";;
..''''''::::::::;;;;;;::::::::::''..''::''....''''''::;;;;""CCNNNNNNNNNNMMMMMMNNNNNNMMNNMMMMMMMMMMMMMMMMMMMMMMNNCC??;;::''..--CC??!!!!!!""--
..''''::::::::;;;;----;;::;;;;;;::::::;;::''''..''''::;;;;>>OONNNNNNNNNNMMMMMMMMNNNNMMMMMMMMMMMMMMMMMMMMMMMMNN77""::''''::::..""77>>>>!!""--
''''''::::;;;;;;;;----;;;;----;;;;;;;;;;::::''''''''::::;;$$QQNNNNNNMMMMMMMMNNNNNNNNNNNNNNNNNNMMNNNNNNMMNNNNCC;;''''''''''''::''"">>>>!!""--
''''::::;;;;;;;;;;----;;--------;;;;;;::::::::::::::::::!!HHQQNNNNNNMMMMNNNNNNQQQQQQNNNNNNNNNNNNNNNNNNNNNNNN!!''''::::::::''::;;''!!>>!!""--
''::::::;;;;;;;;;;----------------;;::::;;;;--;;;;;;::::77HHQQNNNNMMNNNNNNNNNNOOOOHHCCCCCC$$OOOOOOQQNNQQQQ77::::::;;;;;;;;::::--;;;;>>!!""--
..''::::::;;;;;;;;;;----------------;;;;------""--;;;;--$$OOQQNNMMMMMMMMNNNNQQOOHH??!!!!!!!!>>77777777??>>::::::;;""--!!--;;;;;;!!;;"">>""--
..''::::;;;;;;;;;;--------------;;------""""""--!!--;;!!HHOONNNNMMNNNNMMNNNNQQOO??""------------""""""--;;;;;;""""----""!!;;;;;;"">>::""""--
''::::;;;;;;;;;;----""""""""""""----""----------""!!""??OOQQNNMMMMNNNNNNNNNNQQCC""----;;;;;;;;;;;;;;;;;;""!!??77""::::::::::::::::;;--::""--
''::::;;;;;;;;------""--""""""""""--""----------""""""CCQQQQNNNNNNNNQQOONNNNOO>>----;;;;;;;;;;;;;;;;;;::;;""CC!!::''''''''''''''::::--::::--
''::::;;;;------""!!!!""""----------""------;;------""$$QQNNNNNNNNQQCCHHNNNNCC""----;;;;;;;;;;::::;;;;::::""77;;::::''::::::::;;;;;;--""..::
''::::;;;;----""!!!!!!""""""--""----------;;;;;;;;--;;$$QQNNNNNNNNHH>>HHNNNN??----;;;;;;;;;;;;::::::::::::""!!::::::;;::::''''::::::::;;''..
''''''::;;;;--""""""""""--""""----;;--;;;;;;::::------CCQQNNNNNNQQ??!!OONNQQ!!----;;;;;;;;;;;;::::::::::::"";;::;;;;''''''..''''''''::::::..
..''''::::;;;;----""""------""!!""----;;;;;;--"";;--;;!!QQNNNNNNCC""""OONNOO!!--;;;;;;;;;;;;::::::::::::::;;;;;;;;::''''''''''::::::::::;;..
..''''::::::;;------""--!!!!""""--;;;;::::;;;;;;----;;--OONNNNQQ!!""!!HHOOOO!!----;;;;;;;;;;;;::::::::::::;;;;;;;;::''::::''''::::::::''::''
..''''::::;;;;----""""!!!!""""""""--------;;------""--;;>>QQNNCC----!!HHQQQQ77------;;;;;;::::::::::::::;;;;;;--::::::;;::''''''''::''''''::
....''''::::;;;;--""""""!!""!!!!!!""----!!>>>>>>!!!!""::--OONN!!::''::""77HHQQCC""--;;;;;;;;::::::::::::;;::;;;;::::--::::::::::::'''''''';;
....''''::::::;;--""!!!!!!!!!!!!!!"""">>!!----!!>>>>!!::!!$$QQ--'''''';;!!!!>>$$HH??--;;;;;;;;;;::;;::::;;;;--;;::;;--::;;--!!!!""::'''''';;
..''''::::::;;--"""">>>>>>>>>>>>!!!!??>>""----""!!>>!!""CC!!QQ;;''''--77HHHH$$????CC>>--;;;;;;;;;;;;--""----!!;;;;"""";;;;!!>>>>!!--::'''';;
''::;;--------"">>????>>!!!!>>>>>>??>>""""""""""""!!>>??""!!OO::''..::??>>OOMMNN$$>>>>""--;;;;;;-->>$$OO$$77"";;;;>>"";;;;!!!!>>"";;::''::::
::;;;;;;;;;;"">>>>!!""""""""!!>>7777??77>>!!!!!!!!>>??CC::!!HH::......;;--??HH$$??77""""--;;;;--""!!>>>>>>??;;;;>>??----""""""!!--;;''''::::
::::;;;;::--""!!!!--""""""!!!!!!!!>>77??77777777>>!!77OO--!!HH''......'''';;--!!>>77""""--;;;;;;--??OONNQQ??----HH>>::""""""------::''''::::
::::::::--;;::""!!------""""""!!??CC??>>77CC>>!!????CCQQQQ$$HH''......''::::;;------;;;;--;;::::!!77??NNQQ7777""OO""::--""------;;::''''::::
::::::;;::::;;""--;;----""""!!??7777??CCCC>>!!>>>>??HHQQNNNNOO''....''''::;;;;;;;;::....::;;::::--!!!!??7777!!>>OO--'';;!!""--;;;;::''''::''
::::::::::;;--;;--;;----"""">>??7777CCCCCC??>>>>??77HHNNNNNNOO''''''''''::::::::''......::::::::;;--""!!7777--HHHH--::;;??!!--;;;;::''''::''
::::::::::;;;;::;;;;----""!!??777777CCCCCC77777777CCOONNNNNNQQ::''''''''::::::''........::::::''::;;--!!77!!!!NNHH;;::;;HH??!!--;;::''''''..
::::::''''--::::;;::;;--""????????77CC??777777????$$QQNNNNNNQQ::''''''''::::''''......''::::::''::;;;;!!??--??OOHH;;;;""$$!!CC"";;::''''''..
::::::''''--::::::::;;----!!!!!!>>7777!!7777??>>77HHNNNNNNNNQQ--''''''''::::''''......''::::::::::;;;;>>>>""CCHHHH;;--??CCHHHH??"";;::''''..
::::::'''';;::''::;;;;--""--""!!>>??77!!77>>>>??$$QQNNNNNNNNQQ""''''''''::::::''......''::::::::::;;;;>>""??77OO$$----??OONNOO>>>>--::''....
::::''..::::;;''::--;;""--""!!!!!!??????>>!!>>77HHNNNNNNNNNNQQ>>''''''''''::::''......::::::::::::;;--??""7777OO77""--CCNNNNQQ>>??!!;;::''..
''''::''::::::;;""::------!!!!!!"">>??!!>>>>77CCQQNNNNNNNNNNQQ??'''''''''''''''';;::::;;::::::::;;;;-->>"">>77OO??!!""OONNQQOO>>>>??"";;''''
''::''''::::--""::::--;;""--"""""">>??????CC$$QQNNNNNNMMMMNNQQ??::'''''''''''''';;--;;;;;;;;;;;;;;;;!!!!>>!!CCOO>>"">>$$NNQQOO77!!??>>--::::
....''''::----'''';;::;;;;--"""">>??>>>>77$$OOQQNNNNNNNNNNQQNN??::''''''''''''''''::;;--;;--;;;;;;;;>>"">>!!CC$$>>--77CCNNOOOOCC!!>>>>""::::
....''::--::''''''::::::--""----"">>!!??$$HH$$QQNNNNNNQQOONNNN??::''''''''''......''----;;;;;;;;;;;;>>""!!!!$$77>>--77CCQQHHOO$$!!>>!!;;''::
..'''';;''''''''::::;;;;;;------"">>77$$$$??$$NNNNNNQQOO??OONN??::::''''::----;;;;::;;;;;;::::;;;;;;""!!""!!$$??!!""7777OOQQQQHH!!!!!!::''''
''::--::''..''''::::;;;;;;----""??CCCC77!!>>OONNNNNNOOOO;;$$NN??::;;'''''';;"""">>>>""""""--;;;;;;--""!!""!!HH77!!!!????QQQQOOOO>>!!!!::''''
..''::''::''''''::;;;;--"">>??7777>>!!""""$$NNNNNNNNOO77..CCNN??::;;::..'''''';;--!!????>>>>>>"";;""!!!!""??HH??!!>>!!!!HHQQOOOO77""""''''::
''::''::::::::;;--""!!>>??>>>>!!""""""""CCNNNNMMNNOOHH::  77NN??''::;;''..''::--!!>>>>!!""""------""??""""OOHH??>>!!--""CCNNOOOO$$""""''''::
....''::::;;--""!!""""""""--""""!!""!!CCQQNNNNMMQQOO--  ..77NN??''::;;::....''::--""!!""""--;;;;--""CC""""77CC????!!----$$QQCCHH$$!!""''''::
..''''::--""------------;;"">>!!""!!??OONNMMMMNNQQ""..  ..CCNN??''::;;--''..''''''::------;;;;;;"">>CC""""77CC??77>>--!!HHHH77OOHH>>--''''::
..''::--;;;;;;--------"">>!!"""">>""$$NNMMMMNNQQ77..    ..CCQQ>>::::::;;;;''''''''::;;;;;;;;;;--777777""!!CCCC>>77??!!>>OONNQQHH$$??--''''::
''::::::::;;;;;;------77>>!!!!>>CCOONNMMNNNNQQ$$77::    ..77QQ""--::::;;--;;::''::::;;;;;;--!!HH$$CC??--!!CC77??77????>>HHNNQQOOOOCC--''''::
''''''''::::::;;;;----??$$OOOOQQNNNNNNQQHHHHHHHH77""..  ..77QQ;;--::::::;;------;;;;----""77HHQQCCCC!!--!!$$7777$$CC77>>$$QQOOOOOOHH--''''''
......''::::::;;--""!!;;!!77$$HHQQOO??CC$$$$HHOOCC??::  ..77OO;;::;;::::::;;--""""""!!>>77$$OOQQ??CC!!"">>$$??CCOOHH77??CCQQOOHHOOOO!!''''''
  ....''''::"">>>>??????$$CC77CCOOCC!!??OOHH$$HHHH77--....??OO;;..;;::::::;;;;--""""!!??77$$OOCC>>77"""">>$$??77OOCCCC77>>QQOOHHOOOO>>''''''
    ..''!!>>>>!!!!>>!!-->>""--77HHCC??>>HHHH$$HHOOCC!!::..??OO;;..;;;;::::::;;;;--""!!??77$$$$!!??77--""??$$??!!CC??CCCC>>HHOOHHHHQQ77''''::
      ::"";;!!!!>>>>"";;""--""CCHHHH>>??$$HHCC$$QQHH??--''>>OO;;..::--;;;;::;;;;--""!!??CC$$!!>>????--""??$$??""??77CC77CCCCQQHHHHOO77''''::
      ::....--!!>>??""----"">>CCHHHH!!??77OOCC$$QQOOCC"";;>>HH::''''--;;;;;;;;----!!>>77CC>>-->>7777--"">>77>>""??$$$$77CCHHQQHHHHHH??''''::
          ..''""??77!!--;;""??CCHHOO!!????HH$$$$OOQQ$$!!;;!!HH::..'';;--;;;;----""!!??77>>--""!!7777-->>??77"">>77HHCCCCCCHHQQHHHH$$>>''''''
            ..::??CC??--;;""77$$HHOO>>??77HHHH$$$$QQHH>>;;!!HH::..''::""------""!!????!!""--""!!77??--!!77>>--??$$OOCC77CC$$QQOO$$$$!!''''''
            ..''!!$$??--;;!!CC$$HHOO??77CC$$HHCCCCOOQQCC;;--$$::....::--""--"""">>>>!!""----"">>CC!!-->>77--""77OOOO$$CC$$HHQQOO$$HH""''''''
              ..;;CC77---->>CC$$HHHH7777CC$$OOCCCCHHQQHH--;;$$;;....'';;!!""""!!!!""""""--""!!>>CC----HHCC--!!$$QQHH$$$$HHHHHH$$$$HH--..''::
                ''>>77;;!!77CC$$OOOO$$CCCCCCOOCCCC$$QQQQ>>::CC--....''::""!!>>!!""""""----""!!??CC----OO77""77OOQQHHHHHH$$OOCC$$CCCC;;..''''
                ..""CC""??CC$$HHQQQQ$$CC77CCOO$$$$$$QQNNCC::77""....''::;;??!!""""""""--""""""??CC--"">>??!!CCQQQQHHOO$$HHQQHHHH77CC::..''''
                  ::CC>>??CC$$HHQQQQ$$77CC$$QQOOHHHHOONNOO;;>>>>......''::""""""""""--""""""""??77--""????>>HHNNOOHHOOCCOOOOOOOO$$$$::......
                  ..>>>>77$$HHHHOOQQ$$7777HHQQQQOOHHOONNNN""!!77......'''';;""""----""""""""""77??;;""77>>??QQNNOOOOQQ77OOOOHHHHHH$$::......
                  ..;;??CC$$HHOOQQQQ$$77>>HHOONNOOHHOOQQNN77--CC''......''::--------""""""""""77>>--!!77>>$$NNQQOOOOOO$$OOOOOOHHHH$$;;  ....
                    ''??$$HHHHOOOOQQCCCC!!HHOONNQQQQOOOONNOO;;CC::......''::;;----""""""""""""77>>""!!77>>$$NNOOOOQQOOHHQQOOOOHHHHHH""    ..
                    ..--OOHHHHOOQQQQ$$$$!!HHOONNNNQQOOOONNNN--77--......''::::----""""""""""!!CC>>""!!77!!77NNOOOOQQHHHHOOOOOOHHHH$$>>..  ..
        ..          ..::HHOOOOOOQQQQ$$HH77$$HHNNNNQQQQOOQQNN>>!!!!''....''''::;;"""""""""""">>CC!!!!>>77????QQOOOONNHHHHHHOOOOOOHHHH??''  ..
        ....        ..::$$OOOOOOOOQQ$$HH77HHHHQQNNQQQQOOQQNNCC""77''''....''''::""""""""""""??CC!!!!>>77OO77OOOOQQNNOOOOHHQQQQQQHHHH77''  ..
        ......        ''??OOOOOOQQQQ$$HH??HHOOQQNNQQQQQQOONNHH!!77;;''....''::::--""""""""""7777!!!!77CCQQ??HHOOQQNNQQHH$$QQQQQQQQHH??..  ..
          ......      ..!!OOOOOOOOQQCC$$77OOQQOONNNNQQQQQQNNQQ????!!''''''''::;;--""""""""""77??----OO$$NN>>77OONNNNQQCC$$OONNNNNNHH??..  ..
          ..''..      ..--HHOOOOQQQQ7777CCOOQQOONNNNQQQQQQNNNNCC>>>>;;''''''::;;;;"""""""""">>--''::CCOOHH!!""??QQQQNN77$$OONNNNNNOO??..  ..
          ..''....    ..::CCOOOOQQQQ77??CCOONNQQNNNNNNNNNNQQNNHH>>>>--''''''::;;;;--""""""--::''::--77HH!!!!!!!!77QQNN77HHOOQQOOQQHH>>    ..
          ..''''....  ..''??OOOOQQQQ????CCQQNNQQNNNNNNNNNNNNNNNN??>>!!;;''''::::;;;;"""";;'''''';;!!CC$$>>"""">>NNOOQQCCHHOOQQOOQQ$$--    ..
            ..''''..  ..''!!OOQQOOOO????$$QQNNQQQQNNNNNNNNNNNNNN77>>!!--::''''::;;;;--::''''::-->>""HHNNQQ??""HHNNOOQQ77HHOOQQQQOO77--    ..
            ..''''''  ....--OOQQQQHH??77HHQQQQOOQQNNNNNNNNNNNNNN$$>>!!"";;::''::::--::''''::"">>!!""OONNNNQQ>>OONNOOQQ77HHOONNQQOOCC--    ..
              ''''''..  ..;;OOQQOOHH??77OOQQQQQQQQNNNNNNNNNNNNNNQQ>>""""--::::::;;;;::''::""??!!!!!!QQNNQQ??""!!??CCOOCC$$OOQQQQQQCC--    ..
              ..''''''  ..--OOQQQQOO77CCQQNNNNQQQQNNNNNNMMMMNNNNNN??""""--::::::;;::::::-->>>>!!!!!!NNNN??""""!!""""??>>77OOQQQQOOCC--..  ..
              ..''::''....--QQQQQQOO77CCQQNNQQNNQQNNNNNNNNMMMMNNNN77""""--;;::;;::::::;;--""----;;!!QQ77!!"""""""">>7777??$$QQQQOOCC""..    
    ''::..      ..''''''  --OONNQQOO7777HHQQQQQQOONNNNNNNNNNNNNNQQ$$""--;;;;::''''''::--;;;;::--::!!OO>>"";;------!!$$CC>>77HHHH$$??""''    
  ;;!!>>!!''  ..--;;''..  ;;CCCCCCCC!!>>??CCCC$$$$$$HHHHHH$$HHOOHH$$!!;;""--''--;;''--::''--"";;;;--CCHH$$>>>>;;!!CC77>>>>77$$CC??77!!;;    
  >>??;;--""  ??;;""-->>>>!!HH$$$$$$??HH$$77CC$$HH77HH??OOOOQQ$$CCCCHH>>??77!!??77;;$$;;''--;;--;;>>HHCCOOQQQQ>>$$NNQQ77!!HHHH77CCCCCC!!    
  ??!!  ''!!  77..''>>::!!77OO$$??OO!!OONN??HHHH77CCQQHHOOCC$$$$77OO$$>>"">>77""??--??::;;""""!!--77QQCCOOQQNN????NNOO??;;$$$$""CCCC>>""    
  "">>>>??;;  ;;>>""''>>!!>>CC7777$$>>77CC77CCCCHHCC$$77HH$$OOOOHHQQHH-->>!!''??>>''"";;""!!!!"">>$$OO$$OOOOCC!!??QQOO7777$$$$CC77CCCCCC''  
    ;;""::          ..'';;77OOQQOOHH$$CC$$HHHH$$HHHHQQQQQQNNNNNNQQHH!!''..''::''''::::!!"";;::;;;;--NNQQHHCC77--::-->>77??????$$$$77??77!!''