~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^,,,,~:*++?%$$&$####$$$&&%%===?>+)))*;---::;;*>=&&$$$&$###$&&&&&=???)*!;;;:-;*!:^.,^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^,,,~:*++=%$&&$###$$$$&&&%%=??>>++*!;::::-:)?%&$###@@@####&%%%%=>+!;!:::;;!*!;!!-^.^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^,,,~:)++=&$&&###$$$$$$$$$&&%=??>+)*!;;;;!)???=%%&$###@@##$&&&&&%=>)!:---:!))));!;~,.^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~~~
~~~~~~~~~~~^~^^^^^^^^^^^^^^^^^^^^^^^,,,,~:)++=&&%$#$$$$$####$$$&&%=?>+)))))!*)>+)**+>=%&$$####$$$&&&&%?+*!;;:-:!)+>)+;;;~.,,^^^^^^^^^^^^^^^^^^^^^^^~^~~~~~~~~~~~
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^,^,,,~;)++=%%%$$##$$###$$$$$&%==????>>+++>>+*;:;!*>=&&$$###$&$$$&&&%=?+;:;!*!;)+?>++;:;^.,^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~~~~
~~~~~~~^~^^^^^^^^^^^^^^^^^^^^^^^,,,,,,~;*+)=%%%$##$$####$$$$$&&%&%%%=??????>*;:;;:!+>?%&$$###&$$$&%=??>>+))!;*+>*+?=?>+;::,.,^^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~~~~
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^,,,,,,,^:*+)?%%%$##$$######$$$$$$$$&&%=%%%=?);;;;;;>&$####$##$&&$$&&=>*;--::;*+))>?>>==?>)!:-.,,,,^^^^^^^^^^^^^^^^^^^^^^^^^~~~~~~^
~~~^~^^^^^^^^^^^^^^^^^^^^^,,,,,,,,,,,:*+)?=%%&$$&$######$######$$&&&&&&=)!!;;;;*+?&$#@@@@##&&$$$&%=>);::----;)>>?=?>=%??)!-^.,,,,,,^^^^^^^^^^^^^^^^^^^^^^^^^~~~~
~~~^^^^^^^^^^^^^^^^^^^^^^,,,,,,,,,,,~!+)>?%%%&&&$#############$$$$$$$%+))*!;!!*)?=??%$#@@@#&$$$$$$$&%=+!;!*))*)+>?==>=%??+;-,.,,,,,,,,^^^^^^^^^^^^^^^^^^^^^^^^~~
~^^^^^^^^^^^^^^^^^^^^^^^,,,,,,,,,,,^;))>?=&=%&$####@#########$$$$$$&?+>+*!**))>>);;?%&$###$&$$$$&?+*+>=%%?))>?????>?=?=%??+;-,,,,,,,,,,^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^,,,,,,,,,,,,,,,,-**)??%=?%$$#############$$##$$%???+)++)+>?);-;>?%%&##$&$$$$&%=?+;-:*>%$%?>=%%%=?>??=%??+:^.,,,,,,,,,,^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^,,,,,,,,,,,,,,,,^;**>>=>?=&$$################$&%%%=???>+??)!::!&##@@###$&&$$$&%?);--:-;*>&$&%=%&&%=?>>=%??)-,.,,,,,,,,,,,,,^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^,,,,,,,,,,,,,,,,,-!;)++>>=%&$$$$&############$&&&&%%=?>?%++*!;:%&$##@@##&&$$$&%=+*!!!!!!*+>=&$&&%%&&%=>>?%=?*~.,,,,,,,,,,,,,^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^,,,,,,,,,,,,,,,,,,^;;!!*+>?=%&$$$$%###########$$$$&&&%=?%%>?+**;?%%%%&$##&%&$$&&%?>)!;;!+?=?>?=%$$$$%&$&%>>?%=>;^.,,,,,,,,,,,,,,^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^,,,,,,,,,,,,,,,,,.~;!;!)+>??=%%&&%%#########$$$$$&&&&%%$%%%=>+*)>))>=&&&&%%&&&%=+***++>???=%&%=%%&#$#$&$$&?+===+~.,,,,,,,,,,,,,,,,,,,^^^^^^^^^^^^
^^^^^^^^^^^^,,,,,,,,,,,,,,,,,,,,,~~-!)+>??====%&$&##########$#$$$$&&$$&&&%=??)>*)&####$%%&$$$&&=>)!*)++=%%&&&&&%&%$$##&$$&?+=%?!,,,,,,,,,,,,,,,,,,,^^^^^^^^^^^^^
^^^^^^^^^^,,,,,,,,,,,,,,,,,,,,,...^!)>?=%&&%%&$$$&#####@####$$$$$$$$$$$&&%%=?+>>###$$&==&&&%=???=%%%??>?=%&&$$$$$&&&$##&$$&?>%=+~.,,,,,,,,,,,,,,,,,,,,^^^^^^^^^^
^^^^^^^^^,,,,,,,,,,,,,,,,,,,,,,..~-!>??=%%%&&&&$&&$##@######$$$$###$$$$&&&&=?=?$$%=>+*)?%&&&%?+!!)?%&&&%==&&&$$$$$$$&$##$$$%??%?;,,,,,,,,,,,,,,,,,,,,,^^^^^^^^^^
^^^^^^^^^,,,,,,,,,,,,,,,,,,,,,,~:!!*)>>?=%&&$$$$%&################$$$$&&&&&===%?+*;-^^~*>%&%%%%=?+*>%&$$$&%%&$$$$$$$$$$##$$&=?%=)^,,,,,,,,,,,,,,,,,,,,,,,^^^^^^^
^^^^^^^^,,,,,,,,,,,,,,,,,,,,,,,-:***)+>?=%&&$#####@##############$#$$$$$$&%%=?+*:-^,,,,~;+=%%%=%&%%=>%&$$$$&&&&&$$$##$#$##$$&?==+~,,,,,,,,,,,,,,,,,,,,,,,^^^^^^^
^^^^^^,,,,,,,,,,,,,,,..,,,,,,.,~;!**+?=%%%&#######################$#$$$$$&%=>)!:-^,,,.,,~:)?%%%??%&%%%%&$$$$$$&&&&$$####$##&&&?=>-,,,,,,,,,,,,,,,,,,,,,,,,,^^^^^
^^^^^^,,,,,,,,,,,,,,,..,.,,....~!;*)>?=%&&$#############@@#########$$$$$&%=?)!:-~^,,,,,,^~:*>==%=>=&&%&&&$$$##$$$$&$$$##$##$&&==?;,....,,,,,,,,,,,,,,,,,,,,,,,,,
^^^^,,,,,,,,,,,,,,,,...........~;;*+>>=%%$############@@@##@######$$$$$$%=?+!;-~~^^,,,,,^^~:!+>=%&%=&&%&$$#$$##$$$$&$$$#####$&%?>!,....,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,............~:!)++>=%&###########@@@@#@@#######$$$$$&%?>*;:-~~^^^^^,,^^^~-;)+?=&&&$&&$$$#@####$$$$$$$$##@#&&=>*,......,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,...........,-:*))+>==$$#########@@@@@@@########$$$$&%=>+;:--~~^^^^^^^^^^^~-;*)?=&&$$&&$$$$@@@@#@#$&$$$$##@$%%>),.........,.,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,............,~-;!++>?%&&$######@@@@@@@##########$$$&%=>>*;:--~~~^^^^^^^^^^~~-:!)>=%&$&$$$##$#@@@#@@#$&$$$###%%?+,..........,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,.,.............,~-:*+>>?%&&$$$$##@@@@@@@@#########$$$&%=>>+;::--~~~^^^^^^^^^^^~~-:;*>?=&&&##$$####@@#####&&$$##&%=+^.............,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,................^~!)++>%%&&&&$$$#@@@@@@@@#@######$$$$%%?>>*;::---~~~^^^^^^,,^^^~~-:;*>>?&&#####$####@@@@@@#$&&$$%=+^.............,.,,,,,,,,,,,,,,
,,,,,,,,,,,,,,.................,-*)>>?%%%%&%&$#@@@@@@@@########$$$$%%?+>);;:---~~~^^^^^,,,,,,^^^~-:;*++?%&###########@@@@@#####&=+^...............,,,,,,,,,,,,,,
,,,,,,,,,,,,...................^;)+>>====%=%$####@@@@@@@@@###$$$$&&%?>>+!;::---~~~^^^,,,,...,,,^~~-:;*)+?%$#############@@@#$$#&%+^.................,,,,,,,,,,,,
,,,,,,,,,,...................'.~;+>+>???==%$######@@@@@@@##$##$$$&%?>>+*;:::---~~~^^,,,......,,^^~~-:!*))?&###############@#$##&%)^...................,,,,,,,,,,
,,,,,,,,.......................~;+?>??>?=&$$###@@@@@@@@@##$###$$&%?>>>)!;:::---~~~^^,,,..'''..,,^^~~-:!**)?&################$#$$%),...................,,,,,,,,,,
,,,,,,,........................,:>?>>??%&$#@##@@##@@@@@######$$&=???>)!!;;::---~~~^^,,,..'''.,,^^^^~~-;!!!)=$#######$$##$$#@#$$$%!.......................,,,,,,,
,,,,,,..........................->>+>%=%&$####$##@@@@#######$$%=???>)!!;;;::----~~~^^^,,^-;**)))*;~^~-:;;;;)%######$$#=;~~)#@$$&=:........................,,,,,.
,,,,............................-**+?>=%&$$$&$$#@@##@@#####$&&%==?>)*!!!;;;::----~~~-:*+????>)**)))!~~-::::;>&#####$$)^^:!:?@#$=+^............................,,
,,,,.........................''.~:*++>%%%%%&&&$###@@@#####$$&%%=?>)**!!!!;;:::--:;*+?%%&%?+!:--~~~------:--:!?$###$&+~~)%%>;##$?;,'.........................,...
.,,......................''''''.,:!*)=?===%%&$####@@@@####$&%%=?>+)**!!!!!!;;;!)>=&&&&%=>++))*!!;:::--------:*%$$$%+--)*)??:&#&>~''''''.........................
........................''''''''.^:!>>?%%%%&&$$####@@@@@###$&%??>+)*********+?=&&$$&&&&&&&&&&%=?>)*!;::------:+%&=*:-;:--*+!=$%*.'''''''''......................
......................'''''''''''.:))+=&&&&&&#$$#$#####@@@@##$&%?>+))****))>%&$&&&&$#######$$$##$%?+*;:--~----;>=>:-:~^^^:*!?$=:''''''''''......................
...................''''''''''''''.~;*>=%=%%&&&$##$#########@###$&=?>+))*))>=%%%%&$##@@@##&$##@####&+!:--~~~----!>);;*-^,^-;;?&?^'''''''''''.....................
..................'''''''''''''''',;*>>>??%%&$##$$##@@@@@@@@####$$%?>+)**)+>?=%%&$#@#&%%&#%%=%##$$>;--~~~~~~---;*)*!%=+:~~:-=%+.'''''''''''.''..................
...............'..'''''''''''''''',-)>=%%##$$#@@&$@@@@@@@@@@@@@##$$%?+)!!!*)+?=%&$##%?+):*!++>&&+:^^^^^~~~~~---:;**)%=?):~--&=!''''''''''''''''.................
..............''''''''''''''''''''.:>&&%$#$$&$@@&@@@@@#&###$#@@@##$&=+*;::;!*)>?=&$$%?+))*)+>=?+:^,,^^^^~~~~---::!*)+>>+;~-:&?-''''''''''''''''''...............
..............''''''''''''''''''''.!?==&$$%&&$@@$#@@@$$=&=&$&$#@###$%>!:---:;;!!+%%%%======?>>):^,,,,^^^^~~~---::;)!;!**:-~)%>,'''''''''''''''''''..............
............'''''''''''''''''''''''*+>?&&%%&&$@$#&$#@#$&%%=%&$##@##$&>!-^^~---~-!*+>????>>>+)!-^,..,,,^^~~~~---:::*;:-;;^:^?=!''''''''''''''''''''''............
..........''''''''''''''''''''`''''**)>==?%%&$###==%#@##$$$$$$$####$&>;-,,^~^,^~~-;!*))))*!:-^,....,,^^^~~~----:::!::-:^--;%?~'''''''''''''''''''''''...........
........''''''''''''''''''''''''''';**;+>=%%&&#@#???%$$#$$&&&%%%&$$$&+;~.,^^^,,,^~--:::::-~~^,....,,^^^~~~-----:::!---^-:^==>.''''''''''''''''''''''''.'........
......'''''''''''''''''''''''''''''-;~^;+>%&%&@@#>>=%&$$$&%=???=%&$$&+;~..,^,,,,,^~~----~~^^,,...,,^^^~~~-----:::;;:~,-:^!&?*'''''''''''''''''''''''''''........
....'''''''''''''''''''''''''''`''`^:'.,*%&&%$@@#)+=%&&%=?>>>>>??%&$&+:~.,,,,,,,,^^~~~~~~~^^,,,,,^^^^~~~-----::::;:~^--^-%%>;''''''''''''''''''''''''''''.'.....
.'''''',-;-^^''''''''''''`''````'``.-'''!=%&&&@@#!)?%%%?>++++++>?=%&&):~.,,,,,.,,,^^~~~~~^^^^,^^^^^~~~~---::::::::^^;:~^%%?)~'``''''''''''''''''''''''''''......
'''''',))*:~*!^'''''''''`''`````'``'^'``^?%&&%#@#!!>%%?>++))))++>?%%%):^.,,,,,.,,,^^~~~~~~~^^^^^~~~~~~---:::::::;:-+%$~)$=>!''`'''''''''''''''''''''''''''''....
''''''!)**!-!**;^'''''''````````````''``'!=%%%#@#*;+==?>++)))))+>?%&%):^.,,,,,,,,^^^~~~~~~~~~~~~~~~~---::::::-:;;-;$##)=&=+-```'''`''''''''''''''''''''''''''.'.
''''',>?+*!:+****;^''''''````````````'```,>==%&#$+:)?==>>+)))))+>?%%=*:,,,^^^^^^^^~~~~~~~~~~~~~~~-----:::;:::::!!:;%#&=?=+)^`````'``''''''''''''''''''''''''''''
'''''^==?++)?+)**!*;^''``````````````,;~`';>?%&#$%-!>==?>++)))++>=%%>!-,,^^^^^~~~~~~~~~~~~-~~~------::::;;:::-:>=)*>?=%>>:!,````````'``'''''''''''''''''''''''''
'''''')&%==%=?>+)!***;,'```````````,!?!?'`.)>==$$&;;+?==?>+++++>?=&=);-^^^^^^~~--------------------:::;;;;:::-:$@#$$%%=+*,-~'``````````'''''''''''''''''''''''''
''''''.;=$#$&%=?>+))***!,`````````:=%?>%^``->??=%&>-*>===?>>+>>>?=&?!:-^,^^^^~~------------------::::;;;;;:::-*@@@@$=??)-'..'`````````''''''''''''''''''''''''''
''''''''';%##$&%=?>+))*)>)^`````'*&&%%%&.``'*>>>==%:!+?%=??>>>>?=%&**;:^,^^^^^~:::::-----------::::;;;;;;;:::->@#@#&=>**~`````````````'`''''''''''''''''''''''''
''''''''''':%##$&%=?>++!)=?:,``.+&$&&$$?``'^))?*???+:*>=%==?>>??=%?*>)!;:---~---::-----------:::::;;;;!;;;::--%@##$%=+--:```````````````````''''''''''''''''''''
''''''''''''';%###$%=?>;>>>**:^>$$$$$#$~^!>==+=;!=++:;+?=%==???=%&=>?=?+))>>)!;^~-----------:::::;;;!!!;;;::--###$&=>)^.~.`````````````'```'''''''''''''''''''''
''''''''''''''':%##$$&???>*)***+%####=*+=&&%%=&!-*?*!-*>?%%=====%&$&$&%%?=%&%)^,^^~~-------:::::;;;;!!;;;:::-*##$&=?*;^`''```````````````````'`'''''''''''''''''
''''''''''''''''':%##&$$&%)+)))))>&=)>%&$$$&&$>:^,!*!::*>=%%===%&$$$$$&&%?)!-^,,,,^^~~-----::::;;;;!!;;;;:::-?##&%%+!~^````````````````````````'''''''''''''''''
''''''''''''''`'``':=###$%=?>+)))))?&$$$$$$$#%,'~'.::--!)>==%=%%&$$$$$$%?+:,,...,,^^^~~---:::::;;;;;;;;;;;::-$##&%%+!~,'```````````````````````''`''''''''''''''
''''''''''''''''````':=$##$&==>>??&$$$######?.``',`'^^^-!+?==%%&&$$$$$%)!*:^.....,,^^~~----::::;;;;;;;;;;;;:;#$$$%=):-,.``````````````````````````''''''''''''''
''''''''''''''````````'-=###$&&%&$$$####@@%-`````''``''^:*+?=%%&&$$$$%)--;:^,...,,^^~~~----:::;;;;;;;;;;;;;:*##$%=>;^..'`````````````````````````'`'''''''''''''
'''''''''''`''``````````'>###$&$$$$$#@@$%;`````````````'-;*+?=%&&&&&%=>*;;!!;:-^,,^~-------:::;;;;;;;;;;;!;;)+>%>;!:.``````````````````````````````'''''''''''''
''''''''''``````````````:$@#%&$$$$$$##%>+),`````````````,:;*>?%%%%%%%%%=>+)*****!:~-;!;::::::;;;;;;;;!!!!!!;*+~)!~,,.`````````````````````````````'`''''''''''''
''''''''''`````````````-&#&?&$$$$$###$=?>+:`````````````'~:!)>=%%==&&&&&%?>>>>>>>>>+>=+!;::::;;;;!!!!!!***;;)+'~^.'````````````````````````````````````'''''''''
'''''''''`````````````,%#&>&&%&&&&$$##&%=>-'!%&+.````````.-;*>=%%=%&$$$$$&&$&%==????+)+*;;::;;;;!!!!!**))*;;>+.``'``````````````````````````````````````''''''''
''''''''`````````````.?#&>&=>=%=?????=%&&=.+$$%?)`````````~-;)?%$$$$###$&=?+*!---::-^~:;;;;;;;;!!!!!*))+)!;!=)-'````````````````````````````````````````''''''''
'''''''`````````````')#&>&>=&&%?)****)+>?):$$&?!='````````'~:*>%&$$=%&=?+**!;-~-:::-~~-:;;;;;;!!!!**)+>+!!!?%+!~`````````````````````````````````````````'`'''''
'''''```````````````;$&?%>%&&&%====>+*;-;+?%$&>:?^`````````,-;+=%%>)?%=>+))**!!!!!;----:;;;;!!!!!**)>?>*!*?&%=+;````````````````````````````````````````'```''''
'''''``````````````-&&???&&&&?=%>>?&&&%?):!>?%>;?-``````````^:*>==>)>%&=?>>++++++*;:::::;;;!!!!**)+>=?)**>%%&&?!'``````````````````````````````````````````'''''
'''''`````````````^%&=>=&&&==&&=*:*>%#$$$&*;+>>!?:```````````~;)>?>+>=&&&%%%=%=?)!;;:::;;;;!!!**)>=%?+**?==&$&=*,`````````````````````````````````````````'`'''`
'''``````````````^=%?>%&&&?%&&===);;>%#@@#&):)+*=:````````````~;)>>>?=&&&&&&&%?)*!;;:::;;;!!!*)+?%&=>+>=?%&$$$=)-`````````````````````````````````````````'`'''`
''``````````````^>???%&$==&&%%%&#$?*;+?!+##&>:))>:`````````````~!)+>?%&$$&&=>)!;;:::::::;;!!*)>=&&==?=??%&&$$$>>;.``````````````````````````````````````````'''`
''````````````'-)>?=&&$?=&&%%%&$@#$%);+;`>##$?;*+~``````````````-!)+?%&&&=>*;-~~~---::::;!!*+?&$&%%&%?%&&&$$$%>=)~``````````````````````````````````````````````
``''`````````^)>>+=%&&?%&%%%%&$#$@##$>!>^;$##$=*)*```````````````~!)>=%%=+*;:~^^^~---::;!*)>%$$$$&&==%%&&&$$&>=&?;'`````````````````````````````````````````````
`''````````'!=?+)=>>??&&%==%&$#$>;>#@$*!)+@#@#$&>>*```````````````~!)?%=?)*;:-~~~~---:;!*+=$###$$%%%%%%%&&$$?>&&%)-'````````````````````````````````````````````
```````````-=?)>=*===>=&&%&&$###=-`~@$?;?=@@@@##$&%,```````````````~!+==?+)*;:------:;*+?&####$&&&%%%%%&&&&=>%&&&>!.````````````````````````````````````````````
```````````;>>=?+%%=?>=?>=$#####%+``&#&*+&@@@#%&$?~`````````````````~*?%=?++)*;::::;!)?&#@@##$$&&&%%%%%&&&%>=&&&&=).````````````````````````````````````````````
```````````:?&>?%%%=%&&>!*>%&##$&=,`;@$?)=#@@#&%&-``````````````````,*+=%%=??>)***)+?&#@@@###$&&&%%%%%%&&&>?&&&&&%+:````````````````````````````````````````````
```````````~=%?&&%%$&&=++?%&$##$&%*'`=#&>?$@##&%%-``````````````````,+)>%&&&&%====%&#@@@@###$$&&%%%%%%%&%>?%%%%&&%?*,```````````````````````````````````````````
```````````.=?&$&$$$$&=)!+=&&&#$$&>!,.%#&=$##&%%&-``````````````````,>+?%&&$$$$$$####@@@###$$&&&%%%%%%%%>?%%%%%%&=%+:.``````````````````````````````````````````
````````````+=&$$###$&%??%&$$&#$&&=?**>$####$??%%:``````````````````,>>?&##@@@@#$@###@@####$$&&%%%%%%%%??=====%%&%&?!-'`````````````````````````````````````````
````````````:%=$$####$%>*)>=%%####$$$&%$####$*)%%;``````````````````^>?=&##@@@#$#@###@####$$$&&%%%%%%&??====??=&%&&=+!-'````````````````````````````````````````
````````````,&>$$#@##$&=**+?=%%##@###########?+==!``````````````````~>%%&$##@@@$$@##@@####$$$&%%%%%%%??==??>>>=%%&&%?+!-.```````````````````````````````````````
````````````'??%$##@##$%>*)+?==%$######$$$$$&??%?;``````````````````^>&%&###@@@##@#@#@####$$&&%%%%%%?=%=?>>+))&?%&&%%?+!-^'`````````````````````````````````````
`````````````;%=&##@##$&=+!!+?%=%$#####$$&%%=??==:``````````````````->&%&#@@@@@@$##@#@###$$$&&%%%%%====?>+)*!!&?=%&%%=?+*:~,``````.,,,``````````````````````````
`````````````,%>&$$@###$%>*!!>===%&&&$$$&%=???==>!`````````````````';)&&$#@@@@@@$#$@$#$###$$&&%%%=%%=?>++*;::;>%%?%%%%%=>);-^.``~:;--~^^^,,~--~.````````````````
``````````````>==&##@##$&%>*!*>=%%%%=====?????==>!`````````````````^!*&$$#@@@@@@#$##$#$##$$$&&%%%==%>>)*);--~:*>=%=%%%%%=>):^,:+>==>>+**;-!>==%?````````````````
``````````````-%?&##@@##$&=+*!)>=%%%=>>>>>>>>?==>*```````'.,``````';)+&#$#@@@@@@##$$$#$##$$$&&%%==?%+)*;--~^~-;)?=%%%%%%%>:~*?):!)*))+>???%%=%=?!;~^.```````````
``````````````'=?%$$@@###&%?+**+?=%%%=)++++>>?==?!```'.~;*)?*-++?*-)>=$###@@@@@@####$#$###$$&&%%==>%**;-^,,^~-;*>=%%%%%=*-*>*~-:::;;;;;;*?&&>!-,^:)>!```````````
```````````````;%=&##@###$&%?)**+?=%%%>!))++>?=%=*.,~:!>)!**:,.~!:!>?%$###@@@@#@###%$$$##$$$&&%%=??%);:;~,,,^-!+?%%%%%?!!>+*;:-~^^^~~--)=&>;~-)=&&&&&+^`````````
```````````````.%?%$$@###$$&=>)))>?%%%=*!)+>?==%%>!)>>*-!=$$$%+;!)>?=&###@@@@@$####$$$$###$$&&%%=>?+>))*+)~^-!+?%%%%%>)>?)=&%%==>+)!;;+%>;:!>&%=?>?=&&&*'```````
````````````````*==&##@###$&%=>))+>=%%%>;)+>?=%%&?)>?-:?&=??&?;)>?=%%$###@@@##$#$#$=$$$#$$$$&%%%=?))+)**>?%>+>=%%%%%>+??=$&%%====%%>=&%)!!>%%?>>>>?==%&&>'``````
````````````````,%=%##@####$&%?>)++?=%%=**>?==%&&>?)-*&&%=%#$?>=%%&&&$#@#@@@##&###$&$$$##$$$&%%%=?+*;;;;!>&&$&%%===?>???=&#@@@@#$&=%&%+)>%=?>>>=&$$$$$$&&*``````
`````````````````)%%$#@@@##$&%=?>++>=%%%>*>?=%&&&%+*?$$&&$@@&=%&&&$$$$###@##$$&$$#$=&$$#$$$&&%=%=?+*;::;*>=&$&&&==??>>?>>?%&$##@#&==?>>?%=?>?=&$$&%>!:--;*.`````
`````````````````^&&&##@@##$$&%=>>>>?%%%%)?=%%&&$=%$$$$$#@@#$&&$$$$#########&$%$$$$=&&&#$$$&%%?%=?>)!!*+?%%%&$$===??????>?===%=%?>???>==???%&$$%%=>*;:-~~^^,.''`
``````````````````+$$##@@###$&%=??>>?=%&%>?%%&&&%**?$$$#@@@@#$$$$##########$&&%$$$&=&&&$$$$&%%??=?>+>?=%%%&&&&%===???==?>%=???===?>>?????%&$$%%==?>+)**!;;:-~^^,
``````````````````~$###@@@##$$&%=???==%&&==%&&&$>!?$#$#@@@@@#####@#########$%=&$$$&?%$&$$$&&%%%>====%%%%&&&&&&%==??====>%=???====??????+%&$&%%======???>>+>>>?>+
```````````````````?#$##@@###$&&%====%&&&%%&&&$$*+&$##@@@@@@@##@@#########$$%?&$&&&%%$$$$$&&%%%=%&&&&&&&&&&&&&&&%======>===?====??????+&%$&&%%&&&&&&&&&&==%&&&&&
```````````````````,#$$#@@###$$&%%==%%&&$&&&&$$?)%$$$#@@@@@@@@###########$$&%?&$&&?%%$$$$$&%%%&&&&&&&&&&&&&&&%=%%&&&&&&======%==?????>===%&&&&&&&&&&&&&&&%=?=&&&
````````````````````!#%#@@####$$&%%%&&$$$$$$$$$>=$$$$@@@@@@##$$$$$$$$$##$$&&%?&$&&=%%&$$$$&&&&&&&&&&&&&&&&$#$##$$&%%=?%###&&&&&%====?>&>>%&&&$&$&&&&&&&&&&&%==%&
`````````````````````!%$#@@###$$$&$$$&&&$$##$$&&%$&&#@@###$$&%=====%&&&$$$&%=%&&&&=&%&$$$$&&&&&&&&&&&&&&&$$#&%%&&$$$#$&@@&&$&%%===$&+%=+%&&&$&$&&&&&&&&&%%%%===%
````````````````````.:=$#@#####$&%?+?&&&&&$$#==?%$%$###$$&&%%==?????==%&&&&%=%&&&&?%&&$$$$$$&&&&&&&&%%%%&$##%========?%@@====%&&$$%#=%>=%&&&&$&&&&&&&%%%%%%%===%
``````````````````.^~*?%######$$&%%=%%&$$$$$&==?&&%###$$&&&%%%%=====%%%&&&%==%%&&%=%&$$$$$$$&&&&%%%%%=%%&$##?????????>&@$=????==??&@&=+%%&&&%&&&&&%%%%%%===%==?=
````````````````'^~-)==%####$$&=%??%&&$$$$#$$$&&&=$##$$&&&&&&&&&&&%%%%%=%%=?=&%&&=%%&$$$$$$$&&&%%%=%%%%&&$#$======??>)$#=>????????&#%>?=&&&&&%&&&&%%%%===??=??>?
```````````````.~-:+?>+=$##$$$&%%?=%&&$$$##%%%$$%=###$$&&&&&&&&&&%%%%%=====?=&%&%=%&$$$$$$$$&&%%%%%=%%%&$##&==???????=$$==??>>>>>?%&%)%=&&&&&%&%&%&%===??>>+>+)>
``````````````^-:;>?>&+%$#$$$$&%%==%&&$$$$$&>+%&+$##$$$&&&&&&&&&&%%%%%%===>%%&%%=%%&$$$$$$$$&%%%%%%%%%&$$#@@@#####$%>%&=???===??+=%%=+=%&&&&=&&%%%%%=??>>+)*!;;;
`````````````-:;*>!)=&?$##$$$$&%%=%%&$$$$$&++?&>=###$$$&&&&&&&&&&%%%%%%%%===&=&%?%&&$$$$$$$&&%%%%%%%%&&$#@@@@@@@@@@@#$#@$&%???>>>%%%+??&&&&&=&&%%=%%==>+))*!;:--
````````````~!!)>>+%>+%$###$$$&%%=%&&$$$$#&%=&%+$##$$$&&&&&&&&&&&%%%%%%%%?=%&%%%==&$$$$$$$$&&%%%%%%%%&$$#@@@@@@#####@@@@@@@@#&=>=%&%)%=&&&&%%&%%%===%=?)*!;:--~~
```````````,**+>=;?$&)&##$$$&&%&%%%&&$$$$$?###@####$$$&&&&&&&&&&%%%%%%%%%==&%%%=%%&$$$$$$$&&%%%%%%%%&&$$#@@@@#$=$$&=&$%%#@@@@@@@&&&%)=%&&&&=&&%%===??=?>*;:-~~^^
``````````.:++?=+:>$&%&###$&&%%%%?=&&$$##&=@@@@###$$$&&&&&&&&&&&&%%&%%%%==%&=%%?%&&$$$$$$$&&%%%%%%%%&&&$####&&=%%=%==>=>?%$@@@@$&%&=>=&&&&&=&&%%==???>>>+*-~^^,,
`````````'-++?=&;;?$$%####$&&&%&%==%&$###%=&##$$$$$$&&&&&&&&&&&&&&&%&%&%==%%%%===&$$$$$$$$&&%%%%%%%%&&&&&&&%%%%%====+*>>>>>=%$%>==$%%%&&&&&%&&%%===?>++)++):,,,,
`````````^+)>=%=-*=$&&##$$$&&&&&%=%&$####%==?=&$$$$$&&&&&&&&&&&&&&&&&&%%==&&=%?%%%$$$$$$$&&&%%%%%%%%%%%=%&&%%%==%%%=!)>>>>>>>>??==$@#$$&&&%&&&%%==??>+))***)!~,,
````````,*)>=%&):+&$%$#$$&%=??%%%=%&$###==%?=%=?&&&&&&&&&&&&&&&&&&&&&%%=%%%%%%?%%&$$$$$$$&&&%%%%%%%&===?%&&$@&%%%%%?-~;)>>>>?!==??=$$$$&&$%&&&%%==??>++**!!;!);,
```````';++?%&$;!?$$%###$$&%==?>>?=&$##$&&&==?===%&&&&&&&&&&&&&&&&%========?+=?%%$$$$$$&&&&%%===%%&$====$&&$#%%%%%%>~,~~~;+>:-;+???%$$$$&&&&&&&%%=??>+))*!!;;:*!
```````^))>=&$$:)%$&&####&&&%%%=%%%=%%&&&%=======??%%%&&&&&%&%&%=&%========>!&=&&$&$&$%%%%%%%==%&%%&&==%&%%&&%%%%%%)^:?+;,^~~~--!>??&$$$$&&$&&%%%=??>+)**!;;:::;
``````'**+=%&$#&?$$&#@##$$&&%%%%%%%&&&&&&%=======?%=====$&=$$=&=%&=%====?==)*$$&$$&$=&%%&%%&%%=%%=&#&=%&&&&&&%%%%%=;,~:*~,^^^~~--:)?=$$#$$&$&&&%%=??>++)**;;::::
``````-*)?%&$#$%=&@@@@@@@@#&&%%%%%&&&&&$$%===%====%====&$&=$%&&=$%=%====?==!?$$&&$&&%%%&%%%&%%=%%=%===%&&&$$&%%&&$$=-.~^,,^-:~~~--!=?&##$$$$$&&%%==?>>+)**!;::::
`````'!!+=%$$#??%$$#####@@@@#&%%%&&&&&$#&%==?%==?%%====#$=&$=$%?$%%%====?==;&$$#&&$=&%%&%%%&%==%==&====$&&&#$##@@@@@@%!^^^^^^-::-:)=?%#$$$$$$&&&%==?>>++)*!!;::-
`````^;)>%&$##>=$$$&&&&&%%$#@@@$&&&&&$#$&%===%%==%%===$$$=$&%&=%&%%%===?==>*#$&$$&#=&%%&%%%%%==%%=%====&%%%=&&%%=&#@@@@#>-^^~~~-;;)>?&$##$#$$$&&%%==??>+)*!!;;::
`````~!+?%$$#&?%$$$$$&&%=?+++=$@@@#$$$$&&&&&&###$$$$$$#@@#####&$%%%%%%====*>###@@#@##&&$######@####$&&%%%&%%%%=>+>=&$#@@@#+~~~~--:?==$######$$$&&%%=??>++))*!!;:
`````-*>=&$###=$##$$$$&%%%?+?>+=$@@@@#&$##@@@@@@@@@@@@@@@@@##@$##########$>=@#@@@@@@@@@@@@@@@@@@@@@@@@@@#&%%%==%%?)+>??%#@@$!~~-:%##%$######$$$&&&%==?>>++)*!!!;
````.;)?%$$##>?#####$$$%%%=?#=+=%$$&#&%@@@@@@@@@###$$$$####@@@@@@@@@@@@@@@#%%&#@@###$$$$$$$$$$&$$$###@@@@@@#&>=>>==***))>&@@@?:;&#@@&$#######$$$&&%%=??>>++)**!;
````^!+=&$##&>&$$$##@@&%%%%=%=?===%&&%&=@@@@##$$&&&&%&&&&&&&$#@@@@@@@@@@@@@@###$$$$$$&&&&&&&&%%&&&&&&&$$#@@@@$+?+>=?*****>&#@@$$###@@&#@######$$&&&%==?>>>+))*!!
````-*>%&$##%?&$$$$$&$%%%%===?===%&&&&%&@##$&&&%%%%%%%%%%%%%%&&$$##@@######$$$$&&&&&&&&&&&&%%%%%%%%%%%%%&$#@@@?>>++=!*>?+)?)#@@##$&#@###@@####$$$&&%%=??>>>+)))*
```':)?=&####&###$$$$$%%%%????%%%&&&&$&$$$&%%%%%%%%%%%%%%%%%%%%%%%%&$&&&%%&$$$$&&&&&&&&&&&%%%%%%%%%%%%%%%%&#@@#*?++>:;???=++=$%&&&&$#@#@#@@###$$$&&%%%=??>+>++))
```.;++-~*&#&&##@@#$#&&%%=???=#$$&&&$$&$&%%===%%%%%%%%==========%==%&&&%%%%$$&&&&&&&&&&&&%%%%%%%%=======%%%&#@@=!>+>:*?=%?*)>)+&&&&&#@@@@@@@###$$$&&%%==??>>+++)
```,!+-!?%??=&$###@@@#$&&????==%$###$$&%======%%%%%%%==============%&&%==%$$&&&&&&&&&&&&&&%%%%%===========%%&#@#!++)-+>>>%**)*&&&&&&$@@@@@@@###$$$$&&%%=??>>>>++
```~*::>&$$$&%%%%&$##@@@@#%=?%=%&&&$##&======%%%%%%%========????>?%%&%=%%%$$$&&&&&&&&&&&&%%%%====????????===%&@@=:>+*>+>>=!!;%&&&&&&$#@@@@@@@###$$$&%%%==???>>>>
```-;~)%$$$$$$&&%%%%&$#@@@@@$$%%%&&$&&%=====%%%%%%%%=====?????????&%&&==%&$$$$&&&&&&&&&&%%%%%==??>>>>>>>>???=%#@#%#@##%?>+!;=&&&&&&&$$@@@@@@@###$$$&&%%==??>?>>>
```:~!=$$$$$$$$&&&=+?==%&$@@@@@@#$$$&&%%%%%%%%%%%%======???????+?=&&&%==%$$$$$$$$$&&&&&&&%%%==??>>++++)+++>>?=&#@@####@@$#=%&&&&&&&&&$@@@@@@@@###$$$&&%%==????>?