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