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