.a@@@@@#########@@@@a.
                       .a@@######@@@mm@@mm######@@@a.
                  .a####@@@@@@@@@@@@@@@@@@@mm@@##@@v;%%,.
               .a###v@@@@@@@@vvvvvvvvvvvvvv@@@@#@v;%%%vv%%,
            .a##vv@@@@@@@@vv%%%%;S,  .S;%%vv@@#v;%%'/%vvvv%;
          .a##@v@@@@@vv%%vvvvvv%%;SssS;%%vvvv@v;%%./%vvvvvv%;
        ,a##vv@@@vv%%%@@@@@@@@@@@@mmmmmmmmmvv;%%%%vvvvvvvvv%;
        .a##@@@@@@@@@@@@@@@@@@@@@@@mmmmmvv;%%%%%vvvvvvvvvvv%;
       ###vv@@@v##@v@@@@@@@@@@mmv;%;%;%;%;%;%;%;%;%;%;%,%vv%'
      a#vv@@@@v##v@@@@@@@@###@@@@@%v%v%v%v%v%v%v%      ;%%;'
     ',a@@@@@@@v@@@@@@@@v###v@@@nvnvnvnvnvnvnvnv'     .%;'
     a###@@@@@@@###v@@@v##v@@@mnmnmnmnmnmnmnmnmn.     ;'
    ,###vv@@@@v##v@@@@@@v@@@@v##v@@@@@v###v@@@##@.
    ###vv@@@@@@v@@###v@@@@@@@@v@@@@@@v##v@@@v###v@@.
   a@vv@@@@@@@@@v##v@@@@@@@@@@@@@@;@@@v@@@@v##v@@@@@@a
  ',@@@@@@;@@@@@@v@@@@@@@@@@@@@@@;%@@@@@@@@@v@@@@;@@@@@a
 .@@@@@@;%@@;@@@@@@@;;@@@@@;@@@@;%%;@@@@@;@@@@;@@@;@@@@@@.
,a@@@;vv;@%;@@@@@;%%v%;@@@;@@@;%vv%%;@@@;%;@@;%@@@;%;@@;%@@a
  .@@@@@@;%@@;@@@@@@@;;@@@@@;@@@@;%%;@@@@@;@@@@;@@@;@@@@@@.
,a@@@;vv;@%;@@@@@;%%v%;@@@;@@@;%vv%%;@@@;%;@@;%@@@;%;@@;%@@a
 a@;vv;%%%;@@;%%;vvv;%%@@;%;@;%vvv;%;@@;%%%;@;%;@;%%%@@;%%;.`
;@;%;vvv;%;@;%%;vv;%%%%v;%%%;%vv;%%v;@@;%vvv;%;%;%;%%%;%%%%;.%,
%%%;vv;%;vv;%%%v;%%%%;vvv;%%%v;%%%;vvv;%;vv;%%%%%;vv;%%%;vvv;.%%%,
;vvv;%%;vv;%%;vv;%%%;vv;%%%;vvv;%;vv;%;vv;%;%%%;vv;%%%%;vv;%%.%v;v%
vv;%;vvv;%;vv;;%%%%%%;%%%%;vv;%%%%;%%%%;%%;%%;%%;vv;%%%%;%%%;v.%vv;
;%%%%;%%%%%;%%%%%;%%%%;%%%%;%%%;%%%;%%%%%%%;%%%%%;%%%;%%%%;%%;.%%;%