<<<<<<<<<<<<::::::::<<<<::::;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<::::::::<<<<::::;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<::::::::<<<<::::;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<::::::::<<<<::::;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::----<<<<::::<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;--------;;;;::::----<<<<::::<<<<;;;;;;;;;;;;::::----<<<<::::<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;--------;;;;::::----<<<<::::<<<<;;;;;;;;;;;;::::----<<<<::::<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;--------;;;;::::----<<<<::::<<<<;;;;;;;;;;;;::::----<<<<::::<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;--------;;;;::::----<<<<::::<<<<;;;;;;;;;;;;----++++////<<<<<<<<<<<<::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;----;;;;----++++////<<<<;;;;<<<<::::;;;;----++++////<<<<<<<<<<<<::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;----;;;;----++++////<<<<;;;;<<<<::::;;;;----++++////<<<<<<<<<<<<::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;----;;;;----++++////<<<<;;;;<<<<::::;;;;----++++////<<<<<<<<<<<<::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;----;;;;----++++////<<<<;;;;<<<<::::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;<<<<<<<<----<<<<////;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;::::;;;;<<<<<<<<----<<<<////;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;::::;;;;<<<<<<<<----<<<<////;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;::::;;;;<<<<<<<<----<<<<////;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;::::<<<<<<<<;;;;++++--------////;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;<<<<<<<<;;;;++++--------////;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;<<<<<<<<;;;;++++--------////;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;<<<<<<<<;;;;++++--------////;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<<<<<<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::;;;;;;;;<<<<++++++++////<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;;;;;::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<::::;;;;;;;;<<<<++++++++////<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;;;;;::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<::::;;;;;;;;<<<<++++++++////<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;;;;;::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<::::;;;;;;;;<<<<++++++++////<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;;;;;::::;;;;;;;;<<<<<<<<<<<<<<<<<<<<;;;;////<<<<<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<::::;;;;////<<<<<<<<;;;;;;;;;;;;<<<<;;;;////<<<<<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<::::;;;;////<<<<<<<<;;;;;;;;;;;;<<<<;;;;////<<<<<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<::::;;;;////<<<<<<<<;;;;;;;;;;;;<<<<;;;;////<<<<<<<<;;;;;;;;;;;;<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<::::;;;;////<<<<<<<<;;;;;;;;;;;;<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<////====++++++++----////<<<<<<<<;;;;<<<<;;;;<<<<<<<<<<<<;;;;<<<<++++<<<<<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<////====++++++++----////<<<<<<<<;;;;<<<<;;;;<<<<<<<<<<<<;;;;<<<<++++<<<<<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<////====++++++++----////<<<<<<<<;;;;<<<<;;;;<<<<<<<<<<<<;;;;<<<<++++<<<<<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;<<<<////====++++++++----////<<<<<<<<;;;;<<<<;;;;<<<<<<<<<<<<;;;;<<<<++++<<<<<<<<<<<<<<<<<<<<::::::::<<<<::::<<<<<<<<;;;;::::::::;;;;<<<<////++++----====<<<<<<<<;;;;<<<<::::;;;;<<<<;;;;;;;;////----++++----;;;;<<<<<<<<<<<<::::::::<<<<::::<<<<<<<<;;;;::::::::;;;;<<<<////++++----====<<<<<<<<;;;;<<<<::::;;;;<<<<;;;;;;;;////----++++----;;;;<<<<<<<<<<<<::::::::<<<<::::<<<<<<<<;;;;::::::::;;;;<<<<////++++----====<<<<<<<<;;;;<<<<::::;;;;<<<<;;;;;;;;////----++++----;;;;<<<<<<<<<<<<::::::::<<<<::::<<<<<<<<;;;;::::::::;;;;<<<<////++++----====<<<<<<<<;;;;<<<<::::;;;;<<<<;;;;;;;;////----++++----;;;;;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;;;;;++++;;;;;;;;////====++++--------<<<<;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;;;;;++++;;;;;;;;////====++++--------<<<<;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;;;;;++++;;;;;;;;////====++++--------<<<<;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<;;;;;;;;<<<<<<<<<<<<;;;;;;;;++++;;;;;;;;////====++++--------<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;::::;;;;////////<<<<<<<<::::::::<<<<::::<<<<<<<<----////;;;;++++----;;;;<<<<====////++++--------<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;::::;;;;////////<<<<<<<<::::::::<<<<::::<<<<<<<<----////;;;;++++----;;;;<<<<====////++++--------<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;::::;;;;////////<<<<<<<<::::::::<<<<::::<<<<<<<<----////;;;;++++----;;;;<<<<====////++++--------<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;::::;;;;////////<<<<<<<<::::::::<<<<::::<<<<<<<<----////;;;;++++----;;;;<<<<====////++++--------<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;;;;;////////////<<<<;;;;;;;;<<<<;;;;;;;;<<<<----++++====<<<<----////////////====////++++----<<<<<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;;;;;////////////<<<<;;;;;;;;<<<<;;;;;;;;<<<<----++++====<<<<----////////////====////++++----<<<<<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;;;;;////////////<<<<;;;;;;;;<<<<;;;;;;;;<<<<----++++====<<<<----////////////====////++++----<<<<<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;;;;;////////////<<<<;;;;;;;;<<<<;;;;;;;;<<<<----++++====<<<<----////////////====////++++----<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::::::<<<<////<<<<;;;;<<<<<<<<;;;;::::;;;;::::;;;;////<<<<<<<<;;;;<<<<;;;;<<<<////////////<<<<<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::::::<<<<////<<<<;;;;<<<<<<<<;;;;::::;;;;::::;;;;////<<<<<<<<;;;;<<<<;;;;<<<<////////////<<<<<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::::::<<<<////<<<<;;;;<<<<<<<<;;;;::::;;;;::::;;;;////<<<<<<<<;;;;<<<<;;;;<<<<////////////<<<<<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::::::<<<<////<<<<;;;;<<<<<<<<;;;;::::;;;;::::;;;;////<<<<<<<<;;;;<<<<;;;;<<<<////////////<<<<<<<<<<<<<<<<;;;;<<<<<<<<;;;;;;;;;;;;<<<<<<<<::::::::<<<<::::;;;;<<<<;;;;;;;;;;;;::::<<<<;;;;::::;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;;;;;<<<<;;;;<<<<<<<<;;;;;;;;;;;;<<<<<<<<::::::::<<<<::::;;;;<<<<;;;;;;;;;;;;::::<<<<;;;;::::;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;;;;;<<<<;;;;<<<<<<<<;;;;;;;;;;;;<<<<<<<<::::::::<<<<::::;;;;<<<<;;;;;;;;;;;;::::<<<<;;;;::::;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;;;;;<<<<;;;;<<<<<<<<;;;;;;;;;;;;<<<<<<<<::::::::<<<<::::;;;;<<<<;;;;;;;;;;;;::::<<<<;;;;::::;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;;;;;<<<<<<<<;;;;;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;;;;;<<<<;;;;::::;;;;;;;;;;;;<<<<--------++++++++<<<<<<<<;;;;;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;;;;;<<<<;;;;::::;;;;;;;;;;;;<<<<--------++++++++<<<<<<<<;;;;;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;;;;;<<<<;;;;::::;;;;;;;;;;;;<<<<--------++++++++<<<<<<<<;;;;;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;;;;;<<<<;;;;::::;;;;;;;;;;;;<<<<--------++++++++::::;;;;////////<<<<;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;;;;;<<<<<<<<------------++++::::;;;;////////<<<<;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;;;;;<<<<<<<<------------++++::::;;;;////////<<<<;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;;;;;<<<<<<<<------------++++::::;;;;////////<<<<;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;;;;;;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;;;;;<<<<<<<<------------++++::::<<<<------------<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<<<<<::::;;;;<<<<<<<<////////<<<<::::;;;;<<<<<<<<<<<<::::<<<<------------::::<<<<------------<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<<<<<::::;;;;<<<<<<<<////////<<<<::::;;;;<<<<<<<<<<<<::::<<<<------------::::<<<<------------<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<<<<<::::;;;;<<<<<<<<////////<<<<::::;;;;<<<<<<<<<<<<::::<<<<------------::::<<<<------------<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<<<<<::::;;;;<<<<<<<<////////<<<<::::;;;;<<<<<<<<<<<<::::<<<<------------::::----++++++++----////<<<<<<<<;;;;<<<<<<<<;;;;::::;;;;<<<<::::;;;;----++++++++========<<<<<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;::::----++++++++----////<<<<<<<<;;;;<<<<<<<<;;;;::::;;;;<<<<::::;;;;----++++++++========<<<<<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;::::----++++++++----////<<<<<<<<;;;;<<<<<<<<;;;;::::;;;;<<<<::::;;;;----++++++++========<<<<<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;::::----++++++++----////<<<<<<<<;;;;<<<<<<<<;;;;::::;;;;<<<<::::;;;;----++++++++========<<<<<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;::::++++++++++++====////<<<<;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;<<<<--------++++++++========////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<::::++++++++++++====////<<<<;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;<<<<--------++++++++========////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<::::++++++++++++====////<<<<;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;<<<<--------++++++++========////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<::::++++++++++++====////<<<<;;;;<<<<<<<<;;;;;;;;;;;;;;;;;;;;;;;;<<<<--------++++++++========////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<::::++++----====////////<<<<<<<<////////<<<<::::;;;;;;;;;;;;<<<<<<<<------------++++========;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;::::++++----====////////<<<<<<<<////////<<<<::::;;;;;;;;;;;;<<<<<<<<------------++++========;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;::::++++----====////////<<<<<<<<////////<<<<::::;;;;;;;;;;;;<<<<<<<<------------++++========;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;::::++++----====////////<<<<<<<<////////<<<<::::;;;;;;;;;;;;<<<<<<<<------------++++========;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;<<<<::::////////////<<<<////;;;;----<<<<====<<<<;;;;<<<<<<<<<<<<::::<<<<------------////////;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;<<<<::::////////////<<<<////;;;;----<<<<====<<<<;;;;<<<<<<<<<<<<::::<<<<------------////////;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;<<<<::::////////////<<<<////;;;;----<<<<====<<<<;;;;<<<<<<<<<<<<::::<<<<------------////////;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;<<<<::::////////////<<<<////;;;;----<<<<====<<<<;;;;<<<<<<<<<<<<::::<<<<------------////////;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;<<<<<<<<<<<<<<<<////;;;;--------++++========<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;;;;;<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++;;;;<<<<<<<<<<<<<<<<////;;;;--------++++========<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;;;;;<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++;;;;<<<<<<<<<<<<<<<<////;;;;--------++++========<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;;;;;<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++;;;;<<<<<<<<<<<<<<<<////;;;;--------++++========<<<<<<<<<<<<;;;;::::++++;;;;<<<<;;;;;;;;<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++<<<<<<<<::::;;;;;;;;;;;;<<<<;;;;::::----====////////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<;;;;----++++////;;;;<<<<<<<<;;;;<<<<<<<<::::<<<<<<<<::::;;;;;;;;;;;;<<<<;;;;::::----====////////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<;;;;----++++////;;;;<<<<<<<<;;;;<<<<<<<<::::<<<<<<<<::::;;;;;;;;;;;;<<<<;;;;::::----====////////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<;;;;----++++////;;;;<<<<<<<<;;;;<<<<<<<<::::<<<<<<<<::::;;;;;;;;;;;;<<<<;;;;::::----====////////::::;;;;<<<<<<<<;;;;<<<<<<<<<<<<;;;;----++++////;;;;<<<<<<<<;;;;<<<<<<<<::::<<<<<<<<;;;;;;;;;;;;::::;;;;;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;====////<<<<<<<<////<<<<<<<<;;;;++++<<<<<<<<;;;;;;;;;;;;::::;;;;;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;====////<<<<<<<<////<<<<<<<<;;;;++++<<<<<<<<;;;;;;;;;;;;::::;;;;;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;====////<<<<<<<<////<<<<<<<<;;;;++++<<<<<<<<;;;;;;;;;;;;::::;;;;;;;;;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;::::::::;;;;;;;;----;;;;====////<<<<<<<<////<<<<<<<<;;;;++++::::;;;;////////<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;----::::<<<<<<<<;;;;;;;;;;;;::::;;;;++++::::;;;;////////<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;----::::<<<<<<<<;;;;;;;;;;;;::::;;;;++++::::;;;;////////<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;----::::<<<<<<<<;;;;;;;;;;;;::::;;;;++++::::;;;;////////<<<<;;;;;;;;;;;;;;;;<<<<<<<<<<<<;;;;<<<<<<<<<<<<;;;;::::;;;;<<<<;;;;;;;;----::::<<<<<<<<;;;;;;;;;;;;::::;;;;++++<<<<;;;;<<<<<<<<<<<<<<<<;;;;::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;;;;;::::;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;;;;;::::;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;;;;;::::;;;;////////<<<<;;;;;;;;<<<<<<<<;;;;<<<<<<<<<<<<<<<<;;;;::::;;;;;;;;::::<<<<////<<<<::::::::<<<<<<<<;;;;<<<<++++++++;;;;;;;;::::;;;;////////<<<<;;;;;;;;<<<<<<<<<<<<<<<<::::::::<<<<::::<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++::::::::<<<<------------<<<<;;;;;;;;<<<<<<<<<<<<::::::::<<<<::::<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++::::::::<<<<------------<<<<;;;;;;;;<<<<<<<<<<<<::::::::<<<<::::<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++::::::::<<<<------------<<<<;;;;;;;;<<<<<<<<<<<<::::::::<<<<::::<<<<;;;;------------++++////;;;;<<<<<<<<;;;;<<<<<<<<::::;;;;++++::::::::<<<<------------<<<<;;;;;;;;;;;;<<<<;;;;;;;;<<<<;;;;;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::----++++++++----////<<<<<<<<;;;;<<<<;;;;;;;;<<<<;;;;;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::----++++++++----////<<<<<<<<;;;;<<<<;;;;;;;;<<<<;;;;;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::----++++++++----////<<<<<<<<;;;;<<<<;;;;;;;;<<<<;;;;;;;;::::::::--------++++====////<<<<<<<<////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::----++++++++----////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<;;;;::::++++++++++++====////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<;;;;::::++++++++++++====////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<;;;;::::++++++++++++====////<<<<<<<<;;;;;;;;<<<<<<<<;;;;::::;;;;;;;;--------++++====////<<<<;;;;<<<<////;;;;<<<<<<<<;;;;;;;;<<<<;;;;::::++++++++++++====////<<<<<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;::::::::++++----====////////<<<<<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;::::::::++++----====////////<<<<<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;::::::::++++----====////////<<<<<<<<;;;;;;;;::::;;;;<<<<;;;;;;;;<<<<----;;;;<<<<<<<<;;;;<<<<////<<<<++++++++----;;;;;;;;::::;;;;::::::::++++----====////////<<<<<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<;;;;<<<<::::////////////<<<<////<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<;;;;<<<<::::////////////<<<<////<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<;;;;<<<<::::////////////<<<<////<<<<;;;;<<<<;;;;<<<<<<<<;;;;::::<<<<<<<<<<<<;;;;;;;;<<<<////====++++------------;;;;<<<<::::<<<<;;;;<<<<::::////////////<<<<////<<<<