____ __ _ ___
| _ \ _ __ ___ / _| ___ _ __ ___ _ __ _ __ ___ ___ _ _ _ __ / |/ _ \
| |_) | '__/ _ \| |_ / _ \ | '_ \ / _ \| '_ \| '_ ` _ \ / _ \ | | | | '_ \ | | | | |
| __/| | | (_) | _| __/ | |_) | (_) | | | | | | | | | __/ | |_| | | | | | | |_| |
|_| |_| \___/|_| \___| | .__/ \___/|_| |_|_| |_| |_|\___| \__,_|_| |_| |_|\___/
|_|
***************************************###************************************************************************##:..:======:..#********************************#**************************************#######***######************************************************************
*********###*****************************************************************************************************#=..:========..*#**********************######****#####**********************************#######**#******************************************************************
******###***************************#****************************************************************************:..=========..=****************+-:...................:-+************************************#**###******************************************************************
******######************###*********##**************************************************************************...=========-..**#*************-----=============--::..........:=****#*****************###*************************************************************************##
*********###*************************************************************************************************#*...==========..:************#*#:.-==-:-======================-:........-****************###*************************************************************************##
*************************************************************************************************************#=..===========..+**************=..=====::::==========================-.......-**************###*********************************************************##********#****
************************************************************************************************************##...===========..***************..-========:.::-============================:.....:*###******************************************************************##********#****
************************************************************************************************************##:..===========..##************=..============:...:-============================-:....:*********************************************************************************
*************************************************************************************************************#+..===========..#*************..:===============-:...:-============================-.....=#****************************************###*********************************
***************************************************************************************************************:..==========..+************=..====================-:....-============================:....-**********************************************************#***************
*******************************************************************##*******************************************...=========..-#***********:..=========================:....:-==========================-....=**#********************************************************************
***************************************************************************************************************##=..:=======-..#*#*******##..=:...::::======================:....:-=========================....+*#******************************************************************
*****************************************************************************************************************##...=======..=********##-....#%%%%%=..-========================:.....:-=====================-...-******************************************************************
********************************************************************************************************#*********##+...======..****#**###...*%%#%%%%%%+..============================-:.....::-=================...+**#*************************************************************
*******************************************************************************************************=---==+*********...:===-..**=:.......#%%.:%%%##%%=.-==================================-:.:::::::-===========::-+**************************************************************
***********************************************************************************************#*#*-....-=============**#:...:==-==::====...%%#%%%%%.=%%%.:==========================================-:::::::::::::====+*************************************************************
***********************************************************************************************=....:=======================:....-====-.....%%:#%%%%%%%%+.:==========================================================-.-*************************************************************
******************************************************************************************#*-....-===============================--=:...-=:.-%%:::--#%%*..:==========================================================..-*************************************************************
*****************************************************************************************+....-====================================...=====-..%%%%%%%%........-=====================================================-..**************************************************************
**************************************************************************************#:...:=================:.........:==========..:========-.........:::::::....:=================================================..:#*************************************************************
************************************************************************************+....==================...:=======:..:=======-..================:...:::::::::......-===========================================:..##*************************************************************
*********************************************************************************#-...:==================...-===========-..-======..-==================:....::::::::::......-======================================..+#**************************************************************
********************************************************************************:...-==================:..:==========--:--..-=====:..-====================:....:::::::::::.......:-===============================..:****************************************************************
*****************************************************************************#:...-===================...=======......:-===-=======:..:=======================......::::::::::::........-========================:..#****************#***********************************************
**********************************##################************************-...-===================:..-====:....-===================....=========================:.....::::::::::::::.........:-===============-..******************##########**++++++**#######*********************
****************************#***#*+-:............::=*##*****************#*+...:====================...===:...:=========================....:==========================-.......:::::::::::::::..............::--=..=*************##*+-..........................:+********************
*************************#*=:..........:::::::::..........:=*************....=====================...=-...:==============================-....-============================-:........::::::::::::::::::::....::..:**********=:.........:--===================-.....******************
**********************=::...:-==========================-:......-*#****:...======================...:...====================================:....:================================-:.........:::::::::::::::::...******=......:-=================================:..:##**************
*********************=:--=====================================-.....==...:======================......=========================================-.....:===================================-:.............:::::...=***::...:=========================================-=#***************
********************#*============================================-.....=======================:...:===============================================-......-=========================================--:.........*=::.-==============================================:=***************
*******************#*==============================================.....=======================:..=====================================================-:......:-=======================================-....--..--=================================================::***************
******************-==============================================-....::======================---====================-::-====================================:.......:-==============================:....:====-..-=================================================:.:**************
*****************::-============================================:...================================================::=============================================:.........:-=================-:.....-========-..-================================================-..**************
****************+.:============================================...:================================================..-====================================================-:.......:::::::::......:-=============-..:================================================..=*************
***************#..:===========================================...-================================================:.-===============================================================-------========================..:===============================================:..#************
***************=..===========================================...-================================================-..===============================================================================================-..:===============================================..*************
**************#...==========================================...==================================================..-=================================================================================================..:==============================================..=************
**************=..==========================================. .==================================================-..==================================================================================================-..-=============================================..:#***********
**************...=========================================...===================================================..-===================================================================================================:..-============================================:..#***********
*************+..-========================================...===================================================-..=====================================================================================================:..-============================================..************
*************:..========================================...====================================================..:======================================================================================================...============================================..-***********
************#...=======================================...=====================================================..-=======================================================================================================...===========================================...*#*********
************+..-======================================...-====================================================:..========================================================================================================-..-==========================================...#**********
************:..======================================:..:====================================================-..:=========================================================================================================:..==========================================:..#**********
**********##...=====================================-...=================================--=================::..===========================================================================================================...=========================================:..#**********
**********#=..-=====================================...=================================::=================..#..====================================-=======================================================================..:========================================:..#**********
**********#...=====================================...=================================::=================..+=..===================================-:=======================================================================:..========================================:..#**********
**********#...====================================-..:================================..:===============-..#@:..===================================-:========================================================================...=======================================:..***********
***********..:====================================...================================:..===============:..%@@..:===================================-:===========================---==========================================-..=======================================:..#**********
***********..:===================================:..-===============================-..===============...%@@@..-===================================:.:===========================-::==========================================...======================================...*#*********
**********=..-===================================...================================..:==============...@@@@@..====================================..::===========================-::=========================================-..=====================-::........:-====...***********
**********:..===================================:..-===============================...=============-...@@@@@%..====================================..:..===========================:..=========================================..:=============-.........::----::...:=-..=*#*********
*********#...===================================...===============================-..:============:..:@@@@@@%..====================================..+-..===========================:..========================================-..========-.....:-===================:..-************
*********#...==================================-..:===============================...============...+@@@@@@@%..====================================..*@*..-==========================..:========================================.:-====-....-======================:...**************
*********#...====-:..................:-========...===============================:..-===========...%@@@@@@@@#..====================================..#@@@...==========================..-=======================================-::==:...====--:::--============-....+***************
*********#...-.....:================-:...:-====...==============================+...==========:...@@@@@@@@@@%..====================================..#@@@@:..:========================:..========================================::=-:==-:.................--.....+##****************
**********-....==========================--===-..-==============================:..-=========...-@@%=.....+@%..====================================..%@@@@@%...-=======================...=======================================--=====================-......:##*******************
***********:....:=============================:..===============================...=========...#....:#@@@@@@@..-==================================-..%@@@@@@@+...-======================..-=========================================--==================-::-=-....=#*****************
*************#+.....-=========================...==============================:..-=======:......+@@@@@@@@@@@..:==================================-..%@@@@@@@@@+...:====================:..=========================================-:.=========================-....*#**************
***************#**.......:=========-........:-...==============================...=======.....+@@@@@@@@@@@@@@..:==================================:..@@@@@@@@@@@@@....-=================+..:=========================================:..===========================...:##************
***********************-..:-===:......-=======:.:=============================-..-======...%@@@@@@@@@@@@@@@@@...==================================:..@@@@@@@@@@@@@@@=....================:..==========================================:..:==========================-..:#************
***************************=.....:============:.-=============================...=====:...@@@@@@@@@@@@@@@@@@@=..==================================...@@@@@@@@@@@@@@@@@%.....-=============. :===========================================...-=========================--=#************
************************-....:================-:=============================-..:====...-@@@@@@@@@@@@@@@@@@@@@..-=================================...@@@@@@@@@@@@@@@@@@@@#:....-==========...============================================-...:=========================*#************
*********************+....:==================::-=============================...===-...#@@@@@@@@@@@@@@@@@@@@@@...=================================...@@@@@@@@@@@@@@@@@@@@@@@@-.....-===--=-..-=================================:.===========....-=======================*************
******************#:....====================:..==============================...==:...@@@@@@@@@@@@@@@@@@@@@@@@=..=================================...@@@@@:..............:+@@@@@#........==..:=================================-..:===========-....:====-:-===========-:=#***********
*****************....-=====================-..==============================-..-+...-@@@@@@@@@@@@@@@@@@@@@@@@@@...================================..:@@@@##@@@@@@@@@@@#-.........:*@@@=.......===================================...:============+:.......-===========..=#***********
**************-....=======================-..:==============================...=...#@@@@@@@@@@@@@@@@@@@@@@@@@@@=..================================..:@@@@@@@@@@@@@@@@@@@@@@@@#:......:@@@@@#..-====================================.....:========:.....-==============..*************
************=...:=========================...===============================......@@@@@@@@@@@@@@@@@@*-........#@...===============================..-@@@@@@@@@@@@@#++++***%@@@@@@%=.....:@@@...====================================-:.-...........:-=================..:*************
***********+:.-=========================-...===============================-.....@@@@@@@@@@@@@@%- ....-*@@@@@@@@-..======..:=====================-..=@@@@@@@@@@%-.......... ...+@@@@@=....:@...=====================================..:==============================..=*************
*************==========================:..:================================:...-@@@@@@@@@@@@*.....-@@@@@@@@@@@@@@...===-.=...====================-..+@@@@@@@@@..... ..........%@@@@- .....::.....==============================...==============================..+*************
************+=========================...-=================================...=@@@@@@@@@@%.....=@@@@@@@@@@@@@@@@@%..:==-..@:...==================:..#@@@@@@@@. .................. .@@@@@......:--==================================-..=============================-..**************
************+=======================:...===================================...@@%*+*%@@=.....@@@%=......=@@@@@@@@@=..-=-..@@@...-================. .%@@@@@@@-..................... .-@@@@@@*..======================================..:============================:..#*************
**********#--=====================:...-====================================...@@@%*:......=@@=.... ........@@@@@@@@...==..@@@@#...:==============...@@@@@@@@.......... ........... .:@@@@@#..-=====================================...============================...#*************
**********#::-==================....-======================================..:@@@@@#....=@@+....... ...::...*@@@@@@@...=..%@@@@@%....-==========-..=@@@@@@@+...........................:@@@@%..-=====================================...============================..:**************
**********#:.:==============-....:==============::-========================..-@@@@:....@@@........ . . .....=@@@@@@@.....*@@@@@@@@=....-=======...@@@@@@@@=. ...................... ..@@@@#..-=====================================...============================..=**************
**********#-..=========:......:==============:...:=========================..-@@@.. .=@@%..........+.. .......*@@@@@@@:..:%@@@@@@@@@@@-....-====..#@@@@@@@@#.. ...................... ..:@@@*..-=====================================:..===========================:..#**************
**********#*..==========:....-===========-.......==========================..:%%....%@@@. .....................@@@@@@@@@@@@@@@@@@@@@@@@@@%-...:@@@@@@@@@@@@@.... ....................... @@@=..======================================:..===========================...#**************
**********##..:============-................==..:==========================........#@@@:. .. ............... .:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@... . ......................:@@@...======================================:..===========================..:#**************
**********##...===================----=======:..==========================:.......-@@@#............:........ ...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....... ............. .....#@@@...======================================...===========================..-#**************
************:..==============================..:=======================-:.:...@@@@@@@@... .............. .... .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-.....::.................:@@@...=======================================...=====-::.......:-=========-..+##*************
************=..=============================...============================:..#@@@@@@%............. -:........ ..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%@%*+-:....-*-:......=@@@%..:=======================================...-......:------:......:-===...##**************
*************..-============================...=============================..-@@@@@@%.......... . .@. .. ......-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%@@@@@@@@...========================================. .:===================-...:...*****************
************#...========================--=:..-=============================...@@@@@@@........... ..* .. .....-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%@@@@@@@:..-========================================..:=================-.........**#***************
************#...=================-......:-=...==============================-..+@@@@@@ ............. ..... ..%@@@@@@@@@@@@@@@@@@@#:...............-@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%@@@@@:..-========================================:..-===========-.......-+************************
*************:..=============.....:========...===============================...@@@@%@#......... .. .....+@@@@@@@@@@@@@@@@@@:.....-+++++:...-+++++++@@@@@@@@@@@@%%%%%%%%%%%%%%%%@@@%@:..-=========================================...==-........-***##*****************************
*************=..-========:....:===========-..:===============================-...@@@%%%................:%@@@@@@@@@@@@@=:::......=%@*-:++++++....++++=...@@@@@@@@@@@@@%%%%%%%%%%@@@@@%%...===========================================......:----:.......=#****************************
**************..:=====-....========-.........-================================:..*@@%%%%:...........=@%%%%@@@@@@@@@@@@@@%##%@@@@@@@@....++++++-::-+++....@@@@@@@@@@@@@@@@@@@@@@@@@@@:..:============================-:::-==========-...==============-.....**************************
**************...===:...========-....:====...==================================...#@%%%%%%@%#++#@%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@*....+++++++++++-...@@@@@@@@@@@@@@@@@@@@@@@@@....=============================-.....==========...===================:...:***********************
*************#-..--...=======-....:=======...===================================...%@%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-....+++++++++=...@@@@@@@@@@@@@@@@@@@%@@-...:==============================....-..-========-..:======================....#********************
***************+:...=======-....==========...====================================...*%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.....++++++....@@@@@@@@@@@@@@@@@@*.....===============================....:+-..:========...=========================...********************
*****************............:============...=====================================:..:%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:.....:-....%@@@@@@@@@@@@@@@+...:-===============================:....--==-..:=======...:=========================-..********************
*******************##**+...:==============...======================================-...%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:.::-#@@@@@@@@@@@@@@@@@@@@@@%+....-=====================:.....-**..:=:..:======:...===========================..********************
********************#*...:================...========================================...-%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=......:-========-:.......=##***=..==...-=====-...===========================-.:#*******************
********************=...==================...=========================================-...*@@%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#+-:.........:-=*#*********:..==...=====:...============================:.:#*******************
******************#:..:===================...=========-...==============================:...:%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%...+********************#...+...:====....=============================..=#*******************
*******************..-====================...========..=...:==============================-.....:%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-...=***********************...=...====....=============================:..#********************
********************======================...=======...==-...-===============================-.:=%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+....+*************************=.....-==:...-==============================..-*********************
******************--======================...=======...====-....-========================:...:%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-....=##****************************...-=:...:===============================...**********************
******************=::=====================-..:======..-=====+*=.....:-=============-:.....+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.....=###****************************+...:....:================================:..+**********************
******************#:.-=====================...======..-======****#*-................:=***=:::#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=.....:*********************************#:.......-=============---:::::::--========:..-***********************
********************:.-====================-..:=====..:=====..:***#******########*********#=.....#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.......-##**********************************=....+=+*+====-:...............:::.......-=-..:************************
********************-..=====================...=====...======..+#**************************#**#:.....-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*:........+##*************************************=....*#**+--=:....-============:...:======--:..-*************************
*******************#*:..-====================...====:..::====:..***********************************+.......:+%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=:........:=*#***********************************************#*****=::::====================:........******************************
**********************...===============:........===-..:=====-..****************************************+-............:--=+++++++==:::..............-*..-************************************************************=.:========================:..-*********************************
***********************...==========-....:=-......===...=====:..**********************************************##*+=--:...............:-=+*%@@@@@@@@@@@..=****#*******************************************************#::=========================-...********************************
************************...======-....===:..:===...:==...====:..**************************************************************#***=...@@@@@@@@@@@@@@@%..:......********************************************************-......:-==================-..:*******************************
************************+..:===:...==--:..:======-....:...===...#************************************************************-....-...@@@@@@@@@@@@@@@#..@**##-..=###****************************************************#**#+:....:================:..=*#****************************
************************#=..:-...-.......===================-..************************************************************+...####:..*@@@@@@@@@@@@@@%..*::@@@#...#*************************************************************#....-==============...##****************************
************************#*+........--..:====================-.=***********************************************************...=%@@-.:..*@@@@@@@@@@@@@@%....#%%@@@...=*************************************************************#*=...-============:..*#****************************
*******************************#***:..-===============:...:=**********************************************************##:...@@@@@:....@@@@@@@@@@@@@@@@...%#####%@#...***************************************************************+:...===========-..=#****************************
**********************************:..===============...:**************************************************************=...%@@%###%...#@@@@@@@@@@@@@@*..:@@@@%#####%:..:#************************************************************-:=...==========-..+#****************************
*******************************#*=..:=============:..-#*#************************************************************...+@@######%@...@@@@@@@@@@@@@...=###@@@@@#####%-..:...-*******************************************************:.==...=========...##****************************
*******************************##...=============...************************************************************=:::..*@@#####%@@@@%...@@@@@@@@@@#...@@#####%@@@@@###:.:.........***************************************************..===...=======:..=******************************
*******************************#-..=============...*#*****************************************************#+.....::-..@####%@@@@%###%...%@@@@@@@...-@@@@@#####%@@@@@#..#=.-====:...+*********************************************##..:===:..======...-*******************************
********************************...============-..-*****************************************************:....:-==.:@..-##%@@@@%####%@@:..*@@@@#...%##%@@@@@#####%@@@...@+..=======:..-********************************************...====...====-...*********************************
********************************...============...*****************************************************..:======:.=@-..@@@@@%#####@@@@%+..-@@...+@@####%@@@@@%####%*..#@*..=======:......:+**************************************...====-..-==....=#*********************************
********************************-..:===========...#************************************************:.....=======..*@#..#@@%####%@@@@%##*%......%@@@@%####@@@@@@###%..:@@#..=======-.=@@*......=********************************:..:====:..-:...-*************************************
********************************#...-==========...#********************************************+.....#*..=======..@@@..:%#####@@@@@###*...@%#@:..#@@@@#####@@@@@@#-..%@@#..========.:@@###@#-....:**********************+.......:===-....++******************************************
*********************************#....=========-..=************************************#***+.....:@@@@-.-======-..@@@=..####@@@@@####-..... .......@@@@@####%@@@@@..-@@@%..-=======..@@###%@@@@#+.::=#*****************+:............:***#*******************************************
************************************....-=======...+*************************************+...:@%##@@@@:.=======:..@@@@..-#@@@@@%####...::::::::::...-@@@@%####%@@...@@@@%..-=======..%@###%@@@@##%@#..+#********************#*###****************************************************
**************************************:....-=====:...+*******.:**************************--%@@@###%@@%:.=======..-@@@@:..@@@@@####-...:::::::::::::...%@@@@####%-..%@@@@@..-=======..+@####@@@@###@@%..+*****************************************************************************
*****************************************:.....:-==:..........-***********************#+::%*@@@###@@@+..=======..+%@@@#..+@@%####....::::::::::::::....:@@@@@##+..=@@@@@@..-=======..-@%###@@@@###+%%*:.*#***************************************************************************
*******************************************#*+-:.......::--=***************************..#%=*@@###@@@:.:=======..#%@@@#:..%####=..:-..::::::::::::...@...#@@@@@...#@@@@@@..:=======...@%###@@@%##-##@@*::#***************************************************************************
**************************************************************************************..=%#%-@@###@@@..-======-..%@@@%##..:#%%...#@*..::::::::::::..=@@-..:@@@...##@@@@@@..:=======:..@%###@@@%#:*##%@@-.:***************************************************************************
************************************************************************************#...##@@-#@###@@@..=======-..@@@@%##+..+-...#@@@...::::::::::...@@@%#...%...%##@@@@@@:.:=======:..@%###@@@%=:@###@@@..=**************************************************************************
************************************************************************************-..###@@+:@###@@%..=======:..@@@@%###::...*##@@@*..::::::::::..#@@@####..:-@###@@@@@@:..=======:..@%###@@@%:@@%##%@@*..**************************************************************************
************************************************************************************..###@@@#:%###@@+..=======...@@@@%##%@+:=%###@@@@:............:@@@@###@@##@@###@@@@@@:..=======-..@%###@@@:*@@@###@@@...*************************************************************************
***********************************************************************************..:##%@@##=-###@@-..=======..-@@@@###%@@@@%###@@@@@... .......:@@@@@###@@@@@@###%@@@@@-..=======-..@%###@@+:%@@@%###@@%..-*#**********************************************************************
********************************************************************************#*-..%##@@%##%-###@@...=======..+@@@@###%@@@@###%@@@@*..::::::::..*@@@@###@@@@@@###%@@@@@-..=======-..@%###@@-%#@@@@###@@@:..*#**********************************************************************
********************************************************************************#*..+##@@@###@+###@@..:=======..#@@@@###%@@@@###%@@@@...::::::::...@@@@###@@@@@@###%@@@@@-..========..%@###@**###@@@%###@@@..:***********************************************************************
********************************************************************************#...###@@###%@%###@@..:=======..%@@@@###%@@@@###%@@@#..::::::::::..@@@@###@@@@@@###%@@@@@-..========..%@###@#@###@@@@###%@@+..*#*********************************************************************
********************************************************************************-..%##@@%###@@####@@..-=======..@@@@@###@@@@@###%@@@...::::::::::..=@@@###%@@@@@####@@@@@-..========..%@###@@@####@@@%###@@@...#*********************************************************************
******************************************************************************#*..-##%@@###%@@####@%..-======-..@@@@@###@@@@@###%@@%...::::::::::...@@@###%@@@@@####@@@@@-..========..%@###@@@@###@@@@###%@@#..+#********************************************************************
******************************************************************************#:..%##@@%###@@@#*##@#..=======-..@@@@@###@@@@@###%@@-. ::::::::::::..#@@###%@@@@@####@@@@@-..========..%@###@@@@###%@@@####@@@...#********************************************************************
*******************************************************************************..*##@@@###%@@%#-*#@*..=======:..@@@@@###@@@@@###@@@...::::::::::::..-@@###%@@@@@%###@@@@@-..========..%@###@@@@%###@@@@###%@@%..-********************************************************************
******************************************************************************...###@@####@@@#*:##@+..=======:..@@@@@###@@@@@###@@+..:::::::::::::...@@###%@@@@@%###@@@@@-..========..%@###%@@@@####@@@####@@@-..********************************************************************
*****************************************************************************=..%##@@@###@@@@#+:##@+..=======:..@@@@%###@@@@@###@@...::::::::::::::..#@####@@@@@%###@@@@@-..========..%%##*+%@@@%###@@@@###%@@@..:*******************************************************************
*****************************************************************************..-##%@@####@@@##-.##@=..=======:..@@@@%###@@@@%###@@...::::::::::::::..:@%###@@@@@%###@@@@@:..========..%%##+-#@@@@###%@@@####@@@+..*******************************************************************
****************************************************************************:..###@@%###@@@@##..##@-..=======...@@@@%###@@@@%###@-..:::::::::::::::...@%###@@@@@%###@@@@@:..========..%%##=:#%@@@%###@@@@###%@@@...#*****************************************************************
***************************************************************************+..+##%@@###%@@@###..##@-..=======..:@@@@%###@@@@%###@...::::::::::::::::..*%###@@@@@%###@@@@@...=======-..%%##-.##@@@@###%@@@####@@@*..+*****************************************************************
*************************************************************************##...###@@%###@@@@###..##@-..=======..:@@@@%###@@@@%###*..:::::::::::::::::...%###@@@@@%###@@@@@...=======-..@%##:.##%@@@%###@@@@###@@@@...#****************************************************************
**************************************************************************=..%##@@@###%@@@###%..##@-..=======..:@@@@%###@@@@%##%...:::::::::::::::::. .####@@@@@@###@@@@@..:=======-..@%##..###@@@@###%@@@####@@@%..-#***************************************************************
**************************************************************************..-###@@%###@@@@###@..##@-..=======..:@@@@%###@@@@%##%...:::::::::::::::::: .-###@@@@@@###@@@@@..:=======:..@%##..###@@@@%###@@@%###@@@@:..##**************************************************************
*************************************************************************:..%##@@@###%@@@####@..##@-..=======..:@@@@%###@@@@%##=..:::::::::::::::::::...%##@@@@@@###@@@@@..:=======:..@%##..%##%@@@@###%@@@####@@@@...***************************************************************
************************************************************************+..*##%@@%###@@@@###@@..##@-..=======..:@@@@%###@@@@###...::::::::::::::::::::..*##@@@@@@###@@@@@..:=======:..@%##..%###@@@@%###@@@%###@@@@+..+#*************************************************************
*********************************************************************#**...###@@@###%@@@####@@..##@-..=======:.:@@@@%###@@@@%##...::::::::::::::::::::..:##%@@@@@###@@@@@..-=======..:@%##..%###%@@@@###%@@@####@@@@...#*************************************************************
***********************************************************************-..%##%@@####@@@@###%@@..##@=..=======:.:@@@@%###@@@@%#+. :::::::::::::::::::::...##%@@@@@###@@@@%..-=======..=@###..%%###@@@@%###@@@%###@@@@#..+*************************************************************
***********************************************************************..+###@@@####@@@%###@@@..##@=..=======:.:@@@@####@@@@##...::::::::::::::::::::::..*#%@@@@@###@@@%%..========..%@###..%@###%@@@@####@@@####@@@@..:*************************************************************
**********************************************************************:..###%@@%###@@@@###%@@@..##%+..=======-.:@@@@####@@@@%#..:::::::::::::::::::::::..-#%@@@@@###@@@%%.:========..@@###..#@####@@@@%###@@@%###@@@@@.:#************************************************************