-------------------------------------------3-------------1---0-1---1---------------------------------
---------1--0h1-3-1--------1---0h1----3--------------------------------------------------------
-------0--0----------------0----0-------------------2---2------2-----------------------------------------
----------------------------------------------------3-----------------------------------------------
----3--------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------