Cod sursa(job #2832692)

Utilizator lolismekAlex Jerpelea lolismek Data 14 ianuarie 2022 10:01:20
Problema GFact Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 81.68 kb
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*//*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/
/*
                                          .::////++ossss+.  `++:``
                                         -md+ohddhhhhhhMM/  oMMMNds+-`
                                  `/dh`  /M:  `::://///mMo `hMm+oydmmNhs/-`
                                `:hNNM/  /M+   -:://///hMh `mMy/////+oydMNd`
                              `/dNmsoMd` :Mm.`.-:://///yMd`.MM+////////oNMy`
                            `/hNms///dM: :MN/--::::////oMm.-MN/////////dMN-
                          `/hNms/////oMd`-NN+::::::////+mNhhMh////////oMMo
                          yMNy////////dMhdNm/:::::://////+oss/////////mMm.
                          /NNs////////oddyo/::::::://////////////////sMM+
                          `+NMs//////////::::::::::://///////////////mMh`
                           `+NMs//////////::::::::::////////////////sMN:
                            `+MNo/////////::::::::::////////////////mMs`
                             `+MNo/////////:::::::::///////////////sMm.
                               oMN+////////:::::::::///////////////NM/
                                oMm+/////////+ooooosssssssssooo+//yMh
                                `oMm+////+osssssssssssssssssssssssNN.
                                 `oMm+/osssssssssssssssssssssssssdM/
                                  `+NmysssssssssssssssssssssssshNMs
                                    -hMmhyssssssssssssssssyhdNNho-`
                                     `-ohmNmmdddddddmmmmmhys+-``
                                        ``.-:://///::-..```
                                           ````..--:://++oosyyhh+`
                             ```    .+osyyhdmmmmmmmmmmddddhyyshMM/
                           -sdmdy. -dMdhyyysooo+++/////::///:::yMm--os+-`
                          .dMMMMm-/mMmyhddd+::::::::::::omNmmdyohMmNMMMNo
                          +MMMMMNmMMMMMMMMMs::::::::::::sMMMMMMMNMMMMMMMm.
                          oMMMMMMMMMMMMMMNd/::::::::::::+mNMMMMMMMMMMMMMM:
                          /NMMMMMMMMNNmdyo/:::::/+++/::::/ohmmNMMMMMMMMMN-
                          `+hmNNdhyso+/::::::++:+ooo/::+::::/+oyhdmNNNNNy`
                            :mMy/:::::::::::/M+::::::::y::::::::://+oNMs`
                          `/NNs:/shhs/::::::+M:::::::::y:::::::/+//::sMm-
                    ``````oNNo:oNMMMMNy:::::+M:::::::::y:::::+hNMMmo::hMh`     ````
                `.:oydddhhMm+:/yyyhmMMMy::::+M:::::::::y::::sNMMMMMMo:/dMs``/oosssso/-`
              `+hNMNNNNNNNm/:::::://+ymN/:::+N:::::::::y:::sNmhso++sy::/mM+sMNNNNNNNNNh-
              +MMNNNNNNNNNd/::::::+sso:o::::+N:::::::::y:::+/+ss+:::::::+NMNNNNNNNNNNNMy
              +MMNNNNNNNNNNs::::::::::+ooo/:/+:::::::::dyyssso:::::::::::oNNNNNNNNNNNNMh
              -MMMNNNNNNNNNmdddhhhyyyNds//:::::::::::::///+sdNmhhhhhhhddddNNNNNNNNNNNNMo
              `dMMMMMMNNNNNNNNNNNNNNMm/::::::::::::::::::::::/mMNNNNNNNNNNNNNNNNNNMMMMN-
               :NMMMMMMMMMMMMMMMMMMMMMmyo+//:::::::::::::://+odMMMMMMMMMMMMMMMMMMMMMMM+`
                +MNNmNMMMMMMMMMMMMMMMMMMMMNNNNmddhhhhhddmNNNMMMMMMMMMMMMMMMMMMMMMMMNd/`
               :mMdh/.-::/+ooosssyyyhhhhhhhhhddddddddddddddddddddhhhyyssooo+/:ydmMMm.
             `oNMNhhy:           ``      ``````````````````````````         `+hhhNMMm/`
            -hMMNmhhhyo.         ``               `              ``        -shhhhmNMMNs`
          `+mMMNNmhhhhhyo-`      ``               .              ``     .:shhhhhhmNNNMMh.
         .yMMNNNNmhhhhhhhhs+-.`  ``               .              `  `-/oyhhhhhhhhmNNNNMMd:
        :dMMNNNNNmhhhhhhhhhhhyso/:-.``            `         ``..-/+oyyhhhhhhhhhhhNNNNNNMMN+
      `+NMMNNNNNNmhhhhhhhhhhhhhhhhyyssso+++//////://///+++osssyyhhhhhhhhhhhhhhhhhNNNNNNMMMN-
     `sMMMMMNNNNNNhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdNNNNNMMMMMs
     .MMMMMMMMNNNNdhhhhhhhhhhhhhhhhhhhhhhhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmNNNMMMMMMN:
     `+NMMMMMMMNNNmhhhhhhhhhhhhhhhhhhhhhhddmmmmmdhhhmmmmmdhhhhhhhhhhhhhhhhhhhhhdNNNMMMMMMm:
       .yNMMMMMMMNNd/syhhhhhhhhhhhhhhhhdmmmmmmmdhhhhdmmmmdhsssssyyhhhhhhhhhhyyomNNMMMMMMh.
         :dMMMMMMMMNs`.+shhhhhhhhhhysssssssyyhhhhhhhmmdysssssssssssyhhhhhhs/.`hNMMMMMMMs`
          `+NMMMMMMMMh.  .:+syhhhhsssssssssssssssshddssssssssssssssshys+:`  `hMMMMMMMN/`
            .sMMMMMMMMN/     `-:+oooosssssssssssssssssssssssooo+//:-.`     -mMMMMMMMM/
              :MMMMMMMMMd:     `    ```....-----------...````      `     `sNMMMMMMMNMd`
             `sMMmMMMMMMMMh/`                                          .oNMMMMMMMNdhMM+
             /MMmyhmMMMMMMMMmo-                  ``                 `:sNMMMMMMMNdhyymMN-
            .mMmyyyyhmNMMMMMMMNdo:`              ``              `:odNMMMMMMMNdhyyyyyNMh`
           `hMMysyyyyyhdNMMMMMMMMNmy+:.`         ``         `.:+hmNMMMMMMMMNdhyyyyssshMMo
           oMMhssssyyyyyyhdNMMMMMMMMMNNmhs+/:---.-----://oyhmNNMMMMMMMMMNmhhyyyyysssssdMN:
          :NMdsssssssyyyyyyhhmNMMMMMMMMMMMMMMNNNNmNNNNNMMMMMMMMMMMMMMMNdhyyyyyysssssssyNMd`
         .mMNmdhyssssssyyyyyyyhdmNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNmhhyyyyyssssssssyyhNMMo
        `yMNyyhdmmhyssssssyyyyyyyhhdmMMMMMMMMMMMMMMMMMMMMMMMMMMMmdhhyyyyyyssssssyyhmmdhyhMN-
        +MMdsssssyhddhyysssssyyyyyyooshmNMMMMMMMMMMMMMMMMMMMNmhsooyyyyysssssyyddmmhyyssssmMd`
       -NMmsssssssssyyhddhyyssssyysooooosydNNMMMMMMMMMMMMNdysooooosysssyyhdmmdhysssssssssyNMo
      `dMNyssssssssssssssyhhdhhyys++++ooooooshmNMMMMMNmhsoooooo++++yhddddhyysssssssssssssshMN-
     `sMMhsssssssssssssssssssyyhhdhysoooooooooooyhddysoooooooosyyhhhhyyssssssssssssssssssssmMd`
     /MMmssssssssssssssssssssssssssyyhhdddddhhhhyyyhyyyhhhhhhhyysssssssssssssssssssssssssssyMMo`
    -NMNysssssssssssssssssssssssssssssssssssyyyhhhhyyyysssssssssssssssssssssssssssssssssssssdMN-
    /sso/////////////////////////////////////////////////////////////////////////////////////ss/
                                        GET TROLLED!
*/

#include <iostream>
#include <fstream>

#define ll long long

using namespace std;

ifstream fin("gfact.in");
ofstream fout("gfact.out");

ll get_maxdiv(ll x){
    ll rasp = 1, div = 2;
    while(div * div <= x){
        if(x % div == 0){
            while(x % div == 0) x /= div;
            rasp = max(rasp, div);
        }
        div++;
    }
    if(x > 1) rasp = max(rasp, x);
    return rasp;
}

ll get_ap(ll n, ll d){
    ll cnt = 0;
    while(n % d == 0) n /= d, cnt++;
    return cnt;
}

ll exponent(ll n, ll d){
    ll s = 0, p = d;
    while(p <= n) s += (n / p), p *= d;
    return s;
}

int main(){
    ll p, q;
    fin >> p >> q;
    ll d = get_maxdiv(p), ap = get_ap(p, d) * q;
    long long st = 1, dr = (1ll << 62), ans = 0;
    while(st <= dr){
        ll mij = (st + dr) / 2;
        if(exponent(mij, d) >= ap) dr = mij - 1, ans = mij - (mij % d);
        else st = mij + 1;
    }
    fout << ans;
    return 0;
}