+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.