+Consider the following configuration of 64 triangles:
+We wish to colour the interior of each triangle with one of three colours: red,
+green or blue, so that no two neighbouring triangles have the same colour. Such
+a colouring shall be called valid. Here, two triangles are said to be
+neighbouring if they share an edge.
+Note: if they only share a vertex, then they are not neighbours.
+For example, here is a valid colouring of the above grid:
+A colouring C' which is obtained from a colouring C by rotation or reflection
+is considered distinct from C unless the two are identical.
+How many distinct valid colourings are there for the above configuration?
+* The colours of the rows will be stored as vec($s,$pos,2) with a tri-state.
+* We will keep an array (indexed by height) of hashes of the sequence of the
+bottom edges of rows including the count for each one.
+* Also a map of Height -> Permutation of Height colours -> Permutation
+of Height+1 colours in the row below -> Num of such for each.