--------""""""""""!>>>>>>>>>>!!!!!!!!!>>>>>!!""""":"""--------''
--------""""""""""!>>>>>>>>>>!!!!!!!!!>>>>>!!""""":"""--------''
-----:::""""""!!!!>>>>>>>>>>>>>>>>>>>>>>>>!!!!!!""""""::--------
-----:"""""""!!!>>>>>>>>>>777777777777>>>>>>>>>>!!!"""""::------
-----:"""""""!!!>>>>>>>>>>777777777777>>>>>>>>>>!!!"""""::------
---::""""""!!>>>!!>>>77777????77777???7777>>>>!!!!!""""""":---::
--:"""""""!>>>>>>>>77????????777777777????777>!!!!>!!""""""::---
--:"""""""!>>>>>>>>77????????777777777????777>!!!!>!!""""""::---
--:"""""!!>>>!>>77????????????CCCC????77???777>>>>>>>!"""""::---
--:"""""!!>>>!>>77????????????CCCC????77???777>>>>>>>!"""""::---
::""""""!!>>>>77????????CCCCCCOOOOCCCC???????777>>>>>!""""""":--
::""""!!>>>!!77777????CCOOCCCCCCCCCCCCCC??777?77>>!>>>!!""""":--
::""""!!>>>!!77777????CCOOCCCCCCCCCCCCCC??777?77>>!>>>!!""""":--
"""""!>>!!>>>??????CCCOOCCCCCOOOOOCCCCOOCCC??7????>!!>>>!!""""::
"""""!>>!!>77?77??CCCCOOOOOOO$$$$$OOOOOOCCC???????7>>>>>!!""""::
"""""!>>!!>77?77??CCCCOOOOOOO$$$$$OOOOOOCCC???????7>>>>>!!""""::
"""""!>>>>>77?77??COOCOOOO$$$$$$$$$$$$OOCCOCC?77??7>>>>>!!""""::
"""""!>>>>>77?77??COOCOOOO$$$$$$$$$$$$OOCCOCC?77??7>>>>>!!""""::
""""">>>>>7??7??CCOOOCOO$$$$$$$$$$$$$$OOOOOOOC??77?77>>>>>!"""""
"""!!>!!>>7??7??CCOOOOOO$$$$$$$$$$$$$$$$OOCOOC??77?77>!!>>!"""""
"""!!>!!>>7??7??CCOOOOOO$$$$$$$$$$$$$$$$OOCOOC??77?77>!!>>!"""""
"""!!>!!>>7??7??CCCCCO$$$$$$$$$$$$$$$$$$OOCOOO??77?77>!!>>!"""""
"""!!>!!>>7??7CCCCCOOO$$$$$$$Q$$QQ$$$$QQ$$CCCO??77?77>>>>>!"""""
"""!!>!!>>7??7CCCCCOOO$$$$$$$Q$$QQ$$$$QQ$$CCCO??77?77>>>>>!"""""
"""!!>!!>>7??7??CCOOOO$$$$$$$$QQQQ$$$$QQ$$OOOO??77?77>>>>>!"""""
"""!!>!!>>7??7??CCOOOO$$$$$$$$QQQQ$$$$QQ$$OOOO??77?77>>>>>!"""""
"""!!>!!>>7?????CCOOO$$$$$$$$$$$QQQ$$$QQOOCOOOCC?????>!!>>!"""""
"""!!>>>>>7?????CCOCCO$$$$$$$$$$$$$$$$$$OOCOOC?????77>>>>>""""""
"""!!>>>>>7?????CCOCCO$$$$$$$$$$$$$$$$$$OOCOOC?????77>>>>>""""""
"""!!>>>>>7??7??CCOCCC$$$$$$$$$$$$$$$$$$OOCOOC??77?77>>>>>""""""
""""">>>>>>77???CCCCCCOO$$$$$$QQ$$$$$$OOOOCCCC7777?>>>>>!!""""""
""""">>>>>>77???CCCCCCOO$$$$$$QQ$$$$$$OOOOCCCC7777?>>>>>!!""""""
"""""!>>>>>77?????COOOOOOO$$$$$$$$$$$OOOOOCCC???777>>>>>!!""""::
"""""!>>>>>77?????COOOOOOO$$$$$$$$$$$OOOOOCCC???777>>>>>!!""""::
"""""!>>>>>77??????OOOOOOOOOOOOOOOOOOOCCOOC?????777>>>>>!!""""::
""""""!!>>>>>7??77?CCCCCOOCOOOOOOOOCCCCCCCC?????77>>>>!!""""":--
""""""!!>>>>>7??77?CCCCCOOCOOOOOOOOCCCCCCCC?????77>>>>!!""""":--
::""""!!>>>>>7??777??CCCOOOCCCCCCCCOOOCCCC???77777>>>>!!""""":--
--"""""">>>!!!77????????CCCCCOOOOOCCCC??777???77>>!>>!""""""":--
--"""""">>>!!!77????????CCCCCOOOOOCCCC??777???77>>!>>!""""""":--
--:"":""!!>!!!>>>>777?7777????????????7777???7>>>>>!!""""""::---
--:"":""!!>!!!>>>>777?7777????????????7777???7>>>>>!!""""""::---
--:"""""""!>>>>>>>7?????77???77777777777??777>!!>>>!!""""":-----
---::""""""!!>>>>>!>>7????????????????7777>>>>>>>>!""""":::::---
---::""""""!!>>>>>!>>7????????????????7777>>>>>>>>!""""":::::---
-----:"""""""!>>>>!!!>>>77777777777777>>>>>>>>>>!!""""""::-:::--
---:::::::""""!!>>>>>>!!!!!>>>>>>>>>>>!!!!>>>!"""":"""::::----''
---:::::::""""!!>>>>>>!!!!!>>>>>>>>>>>!!!!>>>!"""":"""::::----''
''------::::::::""!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""--:--'''--';;
''------::::::::""!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""--:--'''--';;
>>!--'""??C??!""::"""!77OOO??>>>77?CCCOO77!""""":::??7!!---!!7>>
MMH!!"QQMMMMMQ>>::"""7NNMMMMMO!!CCMMMNMMOO:"""::""?MMM??-->MMMMM
MMH!!"QQMMMMMQ>>::"""7NNMMMMMO!!CCMMMNMMOO:"""::""?MMM??-->MMMMM
77MOO>MMHH7MMM??:::""$MMHHCMMM??OOMHH$OO>>:""-""OOMMMM>>::QMMC77
""M$$:QQMMQMMN!!--:""QMMOO!NNMOO$$MMMMOO>>:""-""OOMNNM!!;;:--'??
""M$$:QQMMQMMN!!--:""QMMOO!NNMOO$$MMMMOO>>:""-""OOMNNM!!;;:--'??
::MHH!QQMMHMMH!!;;'--$MMOO"HHMCC??$OONMMOO-'''--::!NNM>>''.''?MM
::MHH!QQMMHMMH!!;;'--$MMOO"HHMCC??$OONMMOO-'''--::!NNM>>''.''?MM
::MMM$MMOO"QQM??--"!!OMMOO"NNM77!!!""?MMOO:""!::''-QQN"";;:OOMNN
HHM$$CMMMMCMMMCC??M$$?MMMMOMMQ!!OON$$QMMCC7NN$::;;-HHM!!--CMMMMM
HHM$$CMMMMCMMMCC??M$$?MMMMOMMQ!!OON$$QMMCC7NN$::;;-HHM!!--CMMMMM
HHC---$$MMHQQ?""CCM??:CCMMMNN>''??MMMMOO""!HHO--..-OO$::::CHHQ$$
--';;.--"":::-''""!--'--""!""-----:"""--'''::-'''''---;;'''--'''
--';;.--"":::-''""!--'--""!""-----:"""--'''::-'''''---;;'''--'''