17
\$\begingroup\$

In Dimensional Chess, every move is annotated '?!'.

Task

Any one of these two:

  • Determine if a given position (an ordered non-empty collection of integers in the range ‒8 to 8, or ‒7 to 7 if you want) is a valid Dimensional Chess position.
  • List all the valid positions in any order.

Make sure to describe your input (if not listing all) and output formats.

The 2368 valid positions are (assuming 1-based enumeration of the first two dimensions):

1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;2,1,-3;2,1,-2;2,1,-1;2,1,0;2,1,1;2,1,2;2,1,3;2,2,-3;2,2,-2;2,2,-1;2,2,0;2,2,1;2,2,2;2,2,3;2,3,-3;2,3,-2;2,3,-1;2,3,0;2,3,1;2,3,2;2,3,3;2,4,-3;2,4,-2;2,4,-1;2,4,0;2,4,1;2,4,2;2,4,3;2,5,-3;2,5,-2;2,5,-1;2,5,0;2,5,1;2,5,2;2,5,3;2,6,-3;2,6,-2;2,6,-1;2,6,0;2,6,1;2,6,2;2,6,3;2,7,-3;2,7,-2;2,7,-1;2,7,0;2,7,1;2,7,2;2,7,3;2,8,-3;2,8,-2;2,8,-1;2,8,0;2,8,1;2,8,2;2,8,3;3,1,-3,-2;3,1,-3,-1;3,1,-3,0;3,1,-3,1;3,1,-3,2;3,1,-2,-2;3,1,-2,-1;3,1,-2,0;3,1,-2,1;3,1,-2,2;3,1,-1,-2;3,1,-1,-1;3,1,-1,0;3,1,-1,1;3,1,-1,2;3,1,0,-2;3,1,0,-1;3,1,0,0;3,1,0,1;3,1,0,2;3,1,1,-2;3,1,1,-1;3,1,1,0;3,1,1,1;3,1,1,2;3,1,2,-2;3,1,2,-1;3,1,2,0;3,1,2,1;3,1,2,2;3,1,3,-2;3,1,3,-1;3,1,3,0;3,1,3,1;3,1,3,2;3,2,-3,-2;3,2,-3,-1;3,2,-3,0;3,2,-3,1;3,2,-3,2;3,2,-2,-2;3,2,-2,-1;3,2,-2,0;3,2,-2,1;3,2,-2,2;3,2,-1,-2;3,2,-1,-1;3,2,-1,0;3,2,-1,1;3,2,-1,2;3,2,0,-2;3,2,0,-1;3,2,0,0;3,2,0,1;3,2,0,2;3,2,1,-2;3,2,1,-1;3,2,1,0;3,2,1,1;3,2,1,2;3,2,2,-2;3,2,2,-1;3,2,2,0;3,2,2,1;3,2,2,2;3,2,3,-2;3,2,3,-1;3,2,3,0;3,2,3,1;3,2,3,2;3,3,-3,-2;3,3,-3,-1;3,3,-3,0;3,3,-3,1;3,3,-3,2;3,3,-2,-2;3,3,-2,-1;3,3,-2,0;3,3,-2,1;3,3,-2,2;3,3,-1,-2;3,3,-1,-1;3,3,-1,0;3,3,-1,1;3,3,-1,2;3,3,0,-2;3,3,0,-1;3,3,0,0;3,3,0,1;3,3,0,2;3,3,1,-2;3,3,1,-1;3,3,1,0;3,3,1,1;3,3,1,2;3,3,2,-2;3,3,2,-1;3,3,2,0;3,3,2,1;3,3,2,2;3,3,3,-2;3,3,3,-1;3,3,3,0;3,3,3,1;3,3,3,2;3,4,-3,-2;3,4,-3,-1;3,4,-3,0;3,4,-3,1;3,4,-3,2;3,4,-2,-2;3,4,-2,-1;3,4,-2,0;3,4,-2,1;3,4,-2,2;3,4,-1,-2;3,4,-1,-1;3,4,-1,0;3,4,-1,1;3,4,-1,2;3,4,0,-2;3,4,0,-1;3,4,0,0;3,4,0,1;3,4,0,2;3,4,1,-2;3,4,1,-1;3,4,1,0;3,4,1,1;3,4,1,2;3,4,2,-2;3,4,2,-1;3,4,2,0;3,4,2,1;3,4,2,2;3,4,3,-2;3,4,3,-1;3,4,3,0;3,4,3,1;3,4,3,2;3,5,-3,-2;3,5,-3,-1;3,5,-3,0;3,5,-3,1;3,5,-3,2;3,5,-2,-2;3,5,-2,-1;3,5,-2,0;3,5,-2,1;3,5,-2,2;3,5,-1,-2;3,5,-1,-1;3,5,-1,0;3,5,-1,1;3,5,-1,2;3,5,0,-2;3,5,0,-1;3,5,0,0;3,5,0,1;3,5,0,2;3,5,1,-2;3,5,1,-1;3,5,1,0;3,5,1,1;3,5,1,2;3,5,2,-2;3,5,2,-1;3,5,2,0;3,5,2,1;3,5,2,2;3,5,3,-2;3,5,3,-1;3,5,3,0;3,5,3,1;3,5,3,2;3,6,-3,-2;3,6,-3,-1;3,6,-3,0;3,6,-3,1;3,6,-3,2;3,6,-2,-2;3,6,-2,-1;3,6,-2,0;3,6,-2,1;3,6,-2,2;3,6,-1,-2;3,6,-1,-1;3,6,-1,0;3,6,-1,1;3,6,-1,2;3,6,0,-2;3,6,0,-1;3,6,0,0;3,6,0,1;3,6,0,2;3,6,1,-2;3,6,1,-1;3,6,1,0;3,6,1,1;3,6,1,2;3,6,2,-2;3,6,2,-1;3,6,2,0;3,6,2,1;3,6,2,2;3,6,3,-2;3,6,3,-1;3,6,3,0;3,6,3,1;3,6,3,2;3,7,-3,-2;3,7,-3,-1;3,7,-3,0;3,7,-3,1;3,7,-3,2;3,7,-2,-2;3,7,-2,-1;3,7,-2,0;3,7,-2,1;3,7,-2,2;3,7,-1,-2;3,7,-1,-1;3,7,-1,0;3,7,-1,1;3,7,-1,2;3,7,0,-2;3,7,0,-1;3,7,0,0;3,7,0,1;3,7,0,2;3,7,1,-2;3,7,1,-1;3,7,1,0;3,7,1,1;3,7,1,2;3,7,2,-2;3,7,2,-1;3,7,2,0;3,7,2,1;3,7,2,2;3,7,3,-2;3,7,3,-1;3,7,3,0;3,7,3,1;3,7,3,2;3,8,-3,-2;3,8,-3,-1;3,8,-3,0;3,8,-3,1;3,8,-3,2;3,8,-2,-2;3,8,-2,-1;3,8,-2,0;3,8,-2,1;3,8,-2,2;3,8,-1,-2;3,8,-1,-1;3,8,-1,0;3,8,-1,1;3,8,-1,2;3,8,0,-2;3,8,0,-1;3,8,0,0;3,8,0,1;3,8,0,2;3,8,1,-2;3,8,1,-1;3,8,1,0;3,8,1,1;3,8,1,2;3,8,2,-2;3,8,2,-1;3,8,2,0;3,8,2,1;3,8,2,2;3,8,3,-2;3,8,3,-1;3,8,3,0;3,8,3,1;3,8,3,2;4,1,-3,-2,-1;4,1,-3,-2,0;4,1,-3,-2,1;4,1,-3,-1,-1;4,1,-3,-1,0;4,1,-3,-1,1;4,1,-3,0,-1;4,1,-3,0,0;4,1,-3,0,1;4,1,-3,1,-1;4,1,-3,1,0;4,1,-3,1,1;4,1,-3,2,-1;4,1,-3,2,0;4,1,-3,2,1;4,1,-2,-2,-1;4,1,-2,-2,0;4,1,-2,-2,1;4,1,-2,-1,-1;4,1,-2,-1,0;4,1,-2,-1,1;4,1,-2,0,-1;4,1,-2,0,0;4,1,-2,0,1;4,1,-2,1,-1;4,1,-2,1,0;4,1,-2,1,1;4,1,-2,2,-1;4,1,-2,2,0;4,1,-2,2,1;4,1,-1,-2,-1;4,1,-1,-2,0;4,1,-1,-2,1;4,1,-1,-1,-1;4,1,-1,-1,0;4,1,-1,-1,1;4,1,-1,0,-1;4,1,-1,0,0;4,1,-1,0,1;4,1,-1,1,-1;4,1,-1,1,0;4,1,-1,1,1;4,1,-1,2,-1;4,1,-1,2,0;4,1,-1,2,1;4,1,0,-2,-1;4,1,0,-2,0;4,1,0,-2,1;4,1,0,-1,-1;4,1,0,-1,0;4,1,0,-1,1;4,1,0,0,-1;4,1,0,0,0;4,1,0,0,1;4,1,0,1,-1;4,1,0,1,0;4,1,0,1,1;4,1,0,2,-1;4,1,0,2,0;4,1,0,2,1;4,1,1,-2,-1;4,1,1,-2,0;4,1,1,-2,1;4,1,1,-1,-1;4,1,1,-1,0;4,1,1,-1,1;4,1,1,0,-1;4,1,1,0,0;4,1,1,0,1;4,1,1,1,-1;4,1,1,1,0;4,1,1,1,1;4,1,1,2,-1;4,1,1,2,0;4,1,1,2,1;4,1,2,-2,-1;4,1,2,-2,0;4,1,2,-2,1;4,1,2,-1,-1;4,1,2,-1,0;4,1,2,-1,1;4,1,2,0,-1;4,1,2,0,0;4,1,2,0,1;4,1,2,1,-1;4,1,2,1,0;4,1,2,1,1;4,1,2,2,-1;4,1,2,2,0;4,1,2,2,1;4,1,3,-2,-1;4,1,3,-2,0;4,1,3,-2,1;4,1,3,-1,-1;4,1,3,-1,0;4,1,3,-1,1;4,1,3,0,-1;4,1,3,0,0;4,1,3,0,1;4,1,3,1,-1;4,1,3,1,0;4,1,3,1,1;4,1,3,2,-1;4,1,3,2,0;4,1,3,2,1;4,2,-3,-2,-1;4,2,-3,-2,0;4,2,-3,-2,1;4,2,-3,-1,-1;4,2,-3,-1,0;4,2,-3,-1,1;4,2,-3,0,-1;4,2,-3,0,0;4,2,-3,0,1;4,2,-3,1,-1;4,2,-3,1,0;4,2,-3,1,1;4,2,-3,2,-1;4,2,-3,2,0;4,2,-3,2,1;4,2,-2,-2,-1;4,2,-2,-2,0;4,2,-2,-2,1;4,2,-2,-1,-1;4,2,-2,-1,0;4,2,-2,-1,1;4,2,-2,0,-1;4,2,-2,0,0;4,2,-2,0,1;4,2,-2,1,-1;4,2,-2,1,0;4,2,-2,1,1;4,2,-2,2,-1;4,2,-2,2,0;4,2,-2,2,1;4,2,-1,-2,-1;4,2,-1,-2,0;4,2,-1,-2,1;4,2,-1,-1,-1;4,2,-1,-1,0;4,2,-1,-1,1;4,2,-1,0,-1;4,2,-1,0,0;4,2,-1,0,1;4,2,-1,1,-1;4,2,-1,1,0;4,2,-1,1,1;4,2,-1,2,-1;4,2,-1,2,0;4,2,-1,2,1;4,2,0,-2,-1;4,2,0,-2,0;4,2,0,-2,1;4,2,0,-1,-1;4,2,0,-1,0;4,2,0,-1,1;4,2,0,0,-1;4,2,0,0,0;4,2,0,0,1;4,2,0,1,-1;4,2,0,1,0;4,2,0,1,1;4,2,0,2,-1;4,2,0,2,0;4,2,0,2,1;4,2,1,-2,-1;4,2,1,-2,0;4,2,1,-2,1;4,2,1,-1,-1;4,2,1,-1,0;4,2,1,-1,1;4,2,1,0,-1;4,2,1,0,0;4,2,1,0,1;4,2,1,1,-1;4,2,1,1,0;4,2,1,1,1;4,2,1,2,-1;4,2,1,2,0;4,2,1,2,1;4,2,2,-2,-1;4,2,2,-2,0;4,2,2,-2,1;4,2,2,-1,-1;4,2,2,-1,0;4,2,2,-1,1;4,2,2,0,-1;4,2,2,0,0;4,2,2,0,1;4,2,2,1,-1;4,2,2,1,0;4,2,2,1,1;4,2,2,2,-1;4,2,2,2,0;4,2,2,2,1;4,2,3,-2,-1;4,2,3,-2,0;4,2,3,-2,1;4,2,3,-1,-1;4,2,3,-1,0;4,2,3,-1,1;4,2,3,0,-1;4,2,3,0,0;4,2,3,0,1;4,2,3,1,-1;4,2,3,1,0;4,2,3,1,1;4,2,3,2,-1;4,2,3,2,0;4,2,3,2,1;4,3,-3,-2,-1;4,3,-3,-2,0;4,3,-3,-2,1;4,3,-3,-1,-1;4,3,-3,-1,0;4,3,-3,-1,1;4,3,-3,0,-1;4,3,-3,0,0;4,3,-3,0,1;4,3,-3,1,-1;4,3,-3,1,0;4,3,-3,1,1;4,3,-3,2,-1;4,3,-3,2,0;4,3,-3,2,1;4,3,-2,-2,-1;4,3,-2,-2,0;4,3,-2,-2,1;4,3,-2,-1,-1;4,3,-2,-1,0;4,3,-2,-1,1;4,3,-2,0,-1;4,3,-2,0,0;4,3,-2,0,1;4,3,-2,1,-1;4,3,-2,1,0;4,3,-2,1,1;4,3,-2,2,-1;4,3,-2,2,0;4,3,-2,2,1;4,3,-1,-2,-1;4,3,-1,-2,0;4,3,-1,-2,1;4,3,-1,-1,-1;4,3,-1,-1,0;4,3,-1,-1,1;4,3,-1,0,-1;4,3,-1,0,0;4,3,-1,0,1;4,3,-1,1,-1;4,3,-1,1,0;4,3,-1,1,1;4,3,-1,2,-1;4,3,-1,2,0;4,3,-1,2,1;4,3,0,-2,-1;4,3,0,-2,0;4,3,0,-2,1;4,3,0,-1,-1;4,3,0,-1,0;4,3,0,-1,1;4,3,0,0,-1;4,3,0,0,0;4,3,0,0,1;4,3,0,1,-1;4,3,0,1,0;4,3,0,1,1;4,3,0,2,-1;4,3,0,2,0;4,3,0,2,1;4,3,1,-2,-1;4,3,1,-2,0;4,3,1,-2,1;4,3,1,-1,-1;4,3,1,-1,0;4,3,1,-1,1;4,3,1,0,-1;4,3,1,0,0;4,3,1,0,1;4,3,1,1,-1;4,3,1,1,0;4,3,1,1,1;4,3,1,2,-1;4,3,1,2,0;4,3,1,2,1;4,3,2,-2,-1;4,3,2,-2,0;4,3,2,-2,1;4,3,2,-1,-1;4,3,2,-1,0;4,3,2,-1,1;4,3,2,0,-1;4,3,2,0,0;4,3,2,0,1;4,3,2,1,-1;4,3,2,1,0;4,3,2,1,1;4,3,2,2,-1;4,3,2,2,0;4,3,2,2,1;4,3,3,-2,-1;4,3,3,-2,0;4,3,3,-2,1;4,3,3,-1,-1;4,3,3,-1,0;4,3,3,-1,1;4,3,3,0,-1;4,3,3,0,0;4,3,3,0,1;4,3,3,1,-1;4,3,3,1,0;4,3,3,1,1;4,3,3,2,-1;4,3,3,2,0;4,3,3,2,1;4,4,-3,-2,-1;4,4,-3,-2,0;4,4,-3,-2,1;4,4,-3,-1,-1;4,4,-3,-1,0;4,4,-3,-1,1;4,4,-3,0,-1;4,4,-3,0,0;4,4,-3,0,1;4,4,-3,1,-1;4,4,-3,1,0;4,4,-3,1,1;4,4,-3,2,-1;4,4,-3,2,0;4,4,-3,2,1;4,4,-2,-2,-1;4,4,-2,-2,0;4,4,-2,-2,1;4,4,-2,-1,-1;4,4,-2,-1,0;4,4,-2,-1,1;4,4,-2,0,-1;4,4,-2,0,0;4,4,-2,0,1;4,4,-2,1,-1;4,4,-2,1,0;4,4,-2,1,1;4,4,-2,2,-1;4,4,-2,2,0;4,4,-2,2,1;4,4,-1,-2,-1;4,4,-1,-2,0;4,4,-1,-2,1;4,4,-1,-1,-1;4,4,-1,-1,0;4,4,-1,-1,1;4,4,-1,0,-1;4,4,-1,0,0;4,4,-1,0,1;4,4,-1,1,-1;4,4,-1,1,0;4,4,-1,1,1;4,4,-1,2,-1;4,4,-1,2,0;4,4,-1,2,1;4,4,0,-2,-1;4,4,0,-2,0;4,4,0,-2,1;4,4,0,-1,-1;4,4,0,-1,0;4,4,0,-1,1;4,4,0,0,-1;4,4,0,0,0;4,4,0,0,1;4,4,0,1,-1;4,4,0,1,0;4,4,0,1,1;4,4,0,2,-1;4,4,0,2,0;4,4,0,2,1;4,4,1,-2,-1;4,4,1,-2,0;4,4,1,-2,1;4,4,1,-1,-1;4,4,1,-1,0;4,4,1,-1,1;4,4,1,0,-1;4,4,1,0,0;4,4,1,0,1;4,4,1,1,-1;4,4,1,1,0;4,4,1,1,1;4,4,1,2,-1;4,4,1,2,0;4,4,1,2,1;4,4,2,-2,-1;4,4,2,-2,0;4,4,2,-2,1;4,4,2,-1,-1;4,4,2,-1,0;4,4,2,-1,1;4,4,2,0,-1;4,4,2,0,0;4,4,2,0,1;4,4,2,1,-1;4,4,2,1,0;4,4,2,1,1;4,4,2,2,-1;4,4,2,2,0;4,4,2,2,1;4,4,3,-2,-1;4,4,3,-2,0;4,4,3,-2,1;4,4,3,-1,-1;4,4,3,-1,0;4,4,3,-1,1;4,4,3,0,-1;4,4,3,0,0;4,4,3,0,1;4,4,3,1,-1;4,4,3,1,0;4,4,3,1,1;4,4,3,2,-1;4,4,3,2,0;4,4,3,2,1;4,5,-3,-2,-1;4,5,-3,-2,0;4,5,-3,-2,1;4,5,-3,-1,-1;4,5,-3,-1,0;4,5,-3,-1,1;4,5,-3,0,-1;4,5,-3,0,0;4,5,-3,0,1;4,5,-3,1,-1;4,5,-3,1,0;4,5,-3,1,1;4,5,-3,2,-1;4,5,-3,2,0;4,5,-3,2,1;4,5,-2,-2,-1;4,5,-2,-2,0;4,5,-2,-2,1;4,5,-2,-1,-1;4,5,-2,-1,0;4,5,-2,-1,1;4,5,-2,0,-1;4,5,-2,0,0;4,5,-2,0,1;4,5,-2,1,-1;4,5,-2,1,0;4,5,-2,1,1;4,5,-2,2,-1;4,5,-2,2,0;4,5,-2,2,1;4,5,-1,-2,-1;4,5,-1,-2,0;4,5,-1,-2,1;4,5,-1,-1,-1;4,5,-1,-1,0;4,5,-1,-1,1;4,5,-1,0,-1;4,5,-1,0,0;4,5,-1,0,1;4,5,-1,1,-1;4,5,-1,1,0;4,5,-1,1,1;4,5,-1,2,-1;4,5,-1,2,0;4,5,-1,2,1;4,5,0,-2,-1;4,5,0,-2,0;4,5,0,-2,1;4,5,0,-1,-1;4,5,0,-1,0;4,5,0,-1,1;4,5,0,0,-1;4,5,0,0,0;4,5,0,0,1;4,5,0,1,-1;4,5,0,1,0;4,5,0,1,1;4,5,0,2,-1;4,5,0,2,0;4,5,0,2,1;4,5,1,-2,-1;4,5,1,-2,0;4,5,1,-2,1;4,5,1,-1,-1;4,5,1,-1,0;4,5,1,-1,1;4,5,1,0,-1;4,5,1,0,0;4,5,1,0,1;4,5,1,1,-1;4,5,1,1,0;4,5,1,1,1;4,5,1,2,-1;4,5,1,2,0;4,5,1,2,1;4,5,2,-2,-1;4,5,2,-2,0;4,5,2,-2,1;4,5,2,-1,-1;4,5,2,-1,0;4,5,2,-1,1;4,5,2,0,-1;4,5,2,0,0;4,5,2,0,1;4,5,2,1,-1;4,5,2,1,0;4,5,2,1,1;4,5,2,2,-1;4,5,2,2,0;4,5,2,2,1;4,5,3,-2,-1;4,5,3,-2,0;4,5,3,-2,1;4,5,3,-1,-1;4,5,3,-1,0;4,5,3,-1,1;4,5,3,0,-1;4,5,3,0,0;4,5,3,0,1;4,5,3,1,-1;4,5,3,1,0;4,5,3,1,1;4,5,3,2,-1;4,5,3,2,0;4,5,3,2,1;4,6,-3,-2,-1;4,6,-3,-2,0;4,6,-3,-2,1;4,6,-3,-1,-1;4,6,-3,-1,0;4,6,-3,-1,1;4,6,-3,0,-1;4,6,-3,0,0;4,6,-3,0,1;4,6,-3,1,-1;4,6,-3,1,0;4,6,-3,1,1;4,6,-3,2,-1;4,6,-3,2,0;4,6,-3,2,1;4,6,-2,-2,-1;4,6,-2,-2,0;4,6,-2,-2,1;4,6,-2,-1,-1;4,6,-2,-1,0;4,6,-2,-1,1;4,6,-2,0,-1;4,6,-2,0,0;4,6,-2,0,1;4,6,-2,1,-1;4,6,-2,1,0;4,6,-2,1,1;4,6,-2,2,-1;4,6,-2,2,0;4,6,-2,2,1;4,6,-1,-2,-1;4,6,-1,-2,0;4,6,-1,-2,1;4,6,-1,-1,-1;4,6,-1,-1,0;4,6,-1,-1,1;4,6,-1,0,-1;4,6,-1,0,0;4,6,-1,0,1;4,6,-1,1,-1;4,6,-1,1,0;4,6,-1,1,1;4,6,-1,2,-1;4,6,-1,2,0;4,6,-1,2,1;4,6,0,-2,-1;4,6,0,-2,0;4,6,0,-2,1;4,6,0,-1,-1;4,6,0,-1,0;4,6,0,-1,1;4,6,0,0,-1;4,6,0,0,0;4,6,0,0,1;4,6,0,1,-1;4,6,0,1,0;4,6,0,1,1;4,6,0,2,-1;4,6,0,2,0;4,6,0,2,1;4,6,1,-2,-1;4,6,1,-2,0;4,6,1,-2,1;4,6,1,-1,-1;4,6,1,-1,0;4,6,1,-1,1;4,6,1,0,-1;4,6,1,0,0;4,6,1,0,1;4,6,1,1,-1;4,6,1,1,0;4,6,1,1,1;4,6,1,2,-1;4,6,1,2,0;4,6,1,2,1;4,6,2,-2,-1;4,6,2,-2,0;4,6,2,-2,1;4,6,2,-1,-1;4,6,2,-1,0;4,6,2,-1,1;4,6,2,0,-1;4,6,2,0,0;4,6,2,0,1;4,6,2,1,-1;4,6,2,1,0;4,6,2,1,1;4,6,2,2,-1;4,6,2,2,0;4,6,2,2,1;4,6,3,-2,-1;4,6,3,-2,0;4,6,3,-2,1;4,6,3,-1,-1;4,6,3,-1,0;4,6,3,-1,1;4,6,3,0,-1;4,6,3,0,0;4,6,3,0,1;4,6,3,1,-1;4,6,3,1,0;4,6,3,1,1;4,6,3,2,-1;4,6,3,2,0;4,6,3,2,1;4,7,-3,-2,-1;4,7,-3,-2,0;4,7,-3,-2,1;4,7,-3,-1,-1;4,7,-3,-1,0;4,7,-3,-1,1;4,7,-3,0,-1;4,7,-3,0,0;4,7,-3,0,1;4,7,-3,1,-1;4,7,-3,1,0;4,7,-3,1,1;4,7,-3,2,-1;4,7,-3,2,0;4,7,-3,2,1;4,7,-2,-2,-1;4,7,-2,-2,0;4,7,-2,-2,1;4,7,-2,-1,-1;4,7,-2,-1,0;4,7,-2,-1,1;4,7,-2,0,-1;4,7,-2,0,0;4,7,-2,0,1;4,7,-2,1,-1;4,7,-2,1,0;4,7,-2,1,1;4,7,-2,2,-1;4,7,-2,2,0;4,7,-2,2,1;4,7,-1,-2,-1;4,7,-1,-2,0;4,7,-1,-2,1;4,7,-1,-1,-1;4,7,-1,-1,0;4,7,-1,-1,1;4,7,-1,0,-1;4,7,-1,0,0;4,7,-1,0,1;4,7,-1,1,-1;4,7,-1,1,0;4,7,-1,1,1;4,7,-1,2,-1;4,7,-1,2,0;4,7,-1,2,1;4,7,0,-2,-1;4,7,0,-2,0;4,7,0,-2,1;4,7,0,-1,-1;4,7,0,-1,0;4,7,0,-1,1;4,7,0,0,-1;4,7,0,0,0;4,7,0,0,1;4,7,0,1,-1;4,7,0,1,0;4,7,0,1,1;4,7,0,2,-1;4,7,0,2,0;4,7,0,2,1;4,7,1,-2,-1;4,7,1,-2,0;4,7,1,-2,1;4,7,1,-1,-1;4,7,1,-1,0;4,7,1,-1,1;4,7,1,0,-1;4,7,1,0,0;4,7,1,0,1;4,7,1,1,-1;4,7,1,1,0;4,7,1,1,1;4,7,1,2,-1;4,7,1,2,0;4,7,1,2,1;4,7,2,-2,-1;4,7,2,-2,0;4,7,2,-2,1;4,7,2,-1,-1;4,7,2,-1,0;4,7,2,-1,1;4,7,2,0,-1;4,7,2,0,0;4,7,2,0,1;4,7,2,1,-1;4,7,2,1,0;4,7,2,1,1;4,7,2,2,-1;4,7,2,2,0;4,7,2,2,1;4,7,3,-2,-1;4,7,3,-2,0;4,7,3,-2,1;4,7,3,-1,-1;4,7,3,-1,0;4,7,3,-1,1;4,7,3,0,-1;4,7,3,0,0;4,7,3,0,1;4,7,3,1,-1;4,7,3,1,0;4,7,3,1,1;4,7,3,2,-1;4,7,3,2,0;4,7,3,2,1;4,8,-3,-2,-1;4,8,-3,-2,0;4,8,-3,-2,1;4,8,-3,-1,-1;4,8,-3,-1,0;4,8,-3,-1,1;4,8,-3,0,-1;4,8,-3,0,0;4,8,-3,0,1;4,8,-3,1,-1;4,8,-3,1,0;4,8,-3,1,1;4,8,-3,2,-1;4,8,-3,2,0;4,8,-3,2,1;4,8,-2,-2,-1;4,8,-2,-2,0;4,8,-2,-2,1;4,8,-2,-1,-1;4,8,-2,-1,0;4,8,-2,-1,1;4,8,-2,0,-1;4,8,-2,0,0;4,8,-2,0,1;4,8,-2,1,-1;4,8,-2,1,0;4,8,-2,1,1;4,8,-2,2,-1;4,8,-2,2,0;4,8,-2,2,1;4,8,-1,-2,-1;4,8,-1,-2,0;4,8,-1,-2,1;4,8,-1,-1,-1;4,8,-1,-1,0;4,8,-1,-1,1;4,8,-1,0,-1;4,8,-1,0,0;4,8,-1,0,1;4,8,-1,1,-1;4,8,-1,1,0;4,8,-1,1,1;4,8,-1,2,-1;4,8,-1,2,0;4,8,-1,2,1;4,8,0,-2,-1;4,8,0,-2,0;4,8,0,-2,1;4,8,0,-1,-1;4,8,0,-1,0;4,8,0,-1,1;4,8,0,0,-1;4,8,0,0,0;4,8,0,0,1;4,8,0,1,-1;4,8,0,1,0;4,8,0,1,1;4,8,0,2,-1;4,8,0,2,0;4,8,0,2,1;4,8,1,-2,-1;4,8,1,-2,0;4,8,1,-2,1;4,8,1,-1,-1;4,8,1,-1,0;4,8,1,-1,1;4,8,1,0,-1;4,8,1,0,0;4,8,1,0,1;4,8,1,1,-1;4,8,1,1,0;4,8,1,1,1;4,8,1,2,-1;4,8,1,2,0;4,8,1,2,1;4,8,2,-2,-1;4,8,2,-2,0;4,8,2,-2,1;4,8,2,-1,-1;4,8,2,-1,0;4,8,2,-1,1;4,8,2,0,-1;4,8,2,0,0;4,8,2,0,1;4,8,2,1,-1;4,8,2,1,0;4,8,2,1,1;4,8,2,2,-1;4,8,2,2,0;4,8,2,2,1;4,8,3,-2,-1;4,8,3,-2,0;4,8,3,-2,1;4,8,3,-1,-1;4,8,3,-1,0;4,8,3,-1,1;4,8,3,0,-1;4,8,3,0,0;4,8,3,0,1;4,8,3,1,-1;4,8,3,1,0;4,8,3,1,1;4,8,3,2,-1;4,8,3,2,0;4,8,3,2,1;5,1,-3,-2,-1;5,1,-3,-2,0;5,1,-3,-2,1;5,1,-3,-1,-1;5,1,-3,-1,0;5,1,-3,-1,1;5,1,-3,0,-1;5,1,-3,0,0;5,1,-3,0,1;5,1,-3,1,-1;5,1,-3,1,0;5,1,-3,1,1;5,1,-3,2,-1;5,1,-3,2,0;5,1,-3,2,1;5,1,-2,-2,-1;5,1,-2,-2,0;5,1,-2,-2,1;5,1,-2,-1,-1;5,1,-2,-1,0;5,1,-2,-1,1;5,1,-2,0,-1;5,1,-2,0,0;5,1,-2,0,1;5,1,-2,1,-1;5,1,-2,1,0;5,1,-2,1,1;5,1,-2,2,-1;5,1,-2,2,0;5,1,-2,2,1;5,1,-1,-2,-1;5,1,-1,-2,0;5,1,-1,-2,1;5,1,-1,-1,-1;5,1,-1,-1,0;5,1,-1,-1,1;5,1,-1,0,-1;5,1,-1,0,0;5,1,-1,0,1;5,1,-1,1,-1;5,1,-1,1,0;5,1,-1,1,1;5,1,-1,2,-1;5,1,-1,2,0;5,1,-1,2,1;5,1,0,-2,-1;5,1,0,-2,0;5,1,0,-2,1;5,1,0,-1,-1;5,1,0,-1,0;5,1,0,-1,1;5,1,0,0,-1;5,1,0,0,0;5,1,0,0,1;5,1,0,1,-1;5,1,0,1,0;5,1,0,1,1;5,1,0,2,-1;5,1,0,2,0;5,1,0,2,1;5,1,1,-2,-1;5,1,1,-2,0;5,1,1,-2,1;5,1,1,-1,-1;5,1,1,-1,0;5,1,1,-1,1;5,1,1,0,-1;5,1,1,0,0;5,1,1,0,1;5,1,1,1,-1;5,1,1,1,0;5,1,1,1,1;5,1,1,2,-1;5,1,1,2,0;5,1,1,2,1;5,1,2,-2,-1;5,1,2,-2,0;5,1,2,-2,1;5,1,2,-1,-1;5,1,2,-1,0;5,1,2,-1,1;5,1,2,0,-1;5,1,2,0,0;5,1,2,0,1;5,1,2,1,-1;5,1,2,1,0;5,1,2,1,1;5,1,2,2,-1;5,1,2,2,0;5,1,2,2,1;5,1,3,-2,-1;5,1,3,-2,0;5,1,3,-2,1;5,1,3,-1,-1;5,1,3,-1,0;5,1,3,-1,1;5,1,3,0,-1;5,1,3,0,0;5,1,3,0,1;5,1,3,1,-1;5,1,3,1,0;5,1,3,1,1;5,1,3,2,-1;5,1,3,2,0;5,1,3,2,1;5,2,-3,-2,-1;5,2,-3,-2,0;5,2,-3,-2,1;5,2,-3,-1,-1;5,2,-3,-1,0;5,2,-3,-1,1;5,2,-3,0,-1;5,2,-3,0,0;5,2,-3,0,1;5,2,-3,1,-1;5,2,-3,1,0;5,2,-3,1,1;5,2,-3,2,-1;5,2,-3,2,0;5,2,-3,2,1;5,2,-2,-2,-1;5,2,-2,-2,0;5,2,-2,-2,1;5,2,-2,-1,-1;5,2,-2,-1,0;5,2,-2,-1,1;5,2,-2,0,-1;5,2,-2,0,0;5,2,-2,0,1;5,2,-2,1,-1;5,2,-2,1,0;5,2,-2,1,1;5,2,-2,2,-1;5,2,-2,2,0;5,2,-2,2,1;5,2,-1,-2,-1;5,2,-1,-2,0;5,2,-1,-2,1;5,2,-1,-1,-1;5,2,-1,-1,0;5,2,-1,-1,1;5,2,-1,0,-1;5,2,-1,0,0;5,2,-1,0,1;5,2,-1,1,-1;5,2,-1,1,0;5,2,-1,1,1;5,2,-1,2,-1;5,2,-1,2,0;5,2,-1,2,1;5,2,0,-2,-1;5,2,0,-2,0;5,2,0,-2,1;5,2,0,-1,-1;5,2,0,-1,0;5,2,0,-1,1;5,2,0,0,-1;5,2,0,0,0;5,2,0,0,1;5,2,0,1,-1;5,2,0,1,0;5,2,0,1,1;5,2,0,2,-1;5,2,0,2,0;5,2,0,2,1;5,2,1,-2,-1;5,2,1,-2,0;5,2,1,-2,1;5,2,1,-1,-1;5,2,1,-1,0;5,2,1,-1,1;5,2,1,0,-1;5,2,1,0,0;5,2,1,0,1;5,2,1,1,-1;5,2,1,1,0;5,2,1,1,1;5,2,1,2,-1;5,2,1,2,0;5,2,1,2,1;5,2,2,-2,-1;5,2,2,-2,0;5,2,2,-2,1;5,2,2,-1,-1;5,2,2,-1,0;5,2,2,-1,1;5,2,2,0,-1;5,2,2,0,0;5,2,2,0,1;5,2,2,1,-1;5,2,2,1,0;5,2,2,1,1;5,2,2,2,-1;5,2,2,2,0;5,2,2,2,1;5,2,3,-2,-1;5,2,3,-2,0;5,2,3,-2,1;5,2,3,-1,-1;5,2,3,-1,0;5,2,3,-1,1;5,2,3,0,-1;5,2,3,0,0;5,2,3,0,1;5,2,3,1,-1;5,2,3,1,0;5,2,3,1,1;5,2,3,2,-1;5,2,3,2,0;5,2,3,2,1;5,3,-3,-2,-1;5,3,-3,-2,0;5,3,-3,-2,1;5,3,-3,-1,-1;5,3,-3,-1,0;5,3,-3,-1,1;5,3,-3,0,-1;5,3,-3,0,0;5,3,-3,0,1;5,3,-3,1,-1;5,3,-3,1,0;5,3,-3,1,1;5,3,-3,2,-1;5,3,-3,2,0;5,3,-3,2,1;5,3,-2,-2,-1;5,3,-2,-2,0;5,3,-2,-2,1;5,3,-2,-1,-1;5,3,-2,-1,0;5,3,-2,-1,1;5,3,-2,0,-1;5,3,-2,0,0;5,3,-2,0,1;5,3,-2,1,-1;5,3,-2,1,0;5,3,-2,1,1;5,3,-2,2,-1;5,3,-2,2,0;5,3,-2,2,1;5,3,-1,-2,-1;5,3,-1,-2,0;5,3,-1,-2,1;5,3,-1,-1,-1;5,3,-1,-1,0;5,3,-1,-1,1;5,3,-1,0,-1;5,3,-1,0,0;5,3,-1,0,1;5,3,-1,1,-1;5,3,-1,1,0;5,3,-1,1,1;5,3,-1,2,-1;5,3,-1,2,0;5,3,-1,2,1;5,3,0,-2,-1;5,3,0,-2,0;5,3,0,-2,1;5,3,0,-1,-1;5,3,0,-1,0;5,3,0,-1,1;5,3,0,0,-1;5,3,0,0,0;5,3,0,0,1;5,3,0,1,-1;5,3,0,1,0;5,3,0,1,1;5,3,0,2,-1;5,3,0,2,0;5,3,0,2,1;5,3,1,-2,-1;5,3,1,-2,0;5,3,1,-2,1;5,3,1,-1,-1;5,3,1,-1,0;5,3,1,-1,1;5,3,1,0,-1;5,3,1,0,0;5,3,1,0,1;5,3,1,1,-1;5,3,1,1,0;5,3,1,1,1;5,3,1,2,-1;5,3,1,2,0;5,3,1,2,1;5,3,2,-2,-1;5,3,2,-2,0;5,3,2,-2,1;5,3,2,-1,-1;5,3,2,-1,0;5,3,2,-1,1;5,3,2,0,-1;5,3,2,0,0;5,3,2,0,1;5,3,2,1,-1;5,3,2,1,0;5,3,2,1,1;5,3,2,2,-1;5,3,2,2,0;5,3,2,2,1;5,3,3,-2,-1;5,3,3,-2,0;5,3,3,-2,1;5,3,3,-1,-1;5,3,3,-1,0;5,3,3,-1,1;5,3,3,0,-1;5,3,3,0,0;5,3,3,0,1;5,3,3,1,-1;5,3,3,1,0;5,3,3,1,1;5,3,3,2,-1;5,3,3,2,0;5,3,3,2,1;5,4,-3,-2,-1;5,4,-3,-2,0;5,4,-3,-2,1;5,4,-3,-1,-1;5,4,-3,-1,0;5,4,-3,-1,1;5,4,-3,0,-1;5,4,-3,0,0;5,4,-3,0,1;5,4,-3,1,-1;5,4,-3,1,0;5,4,-3,1,1;5,4,-3,2,-1;5,4,-3,2,0;5,4,-3,2,1;5,4,-2,-2,-1;5,4,-2,-2,0;5,4,-2,-2,1;5,4,-2,-1,-1;5,4,-2,-1,0;5,4,-2,-1,1;5,4,-2,0,-1;5,4,-2,0,0;5,4,-2,0,1;5,4,-2,1,-1;5,4,-2,1,0;5,4,-2,1,1;5,4,-2,2,-1;5,4,-2,2,0;5,4,-2,2,1;5,4,-1,-2,-1;5,4,-1,-2,0;5,4,-1,-2,1;5,4,-1,-1,-1;5,4,-1,-1,0;5,4,-1,-1,1;5,4,-1,0,-1;5,4,-1,0,0;5,4,-1,0,1;5,4,-1,1,-1;5,4,-1,1,0;5,4,-1,1,1;5,4,-1,2,-1;5,4,-1,2,0;5,4,-1,2,1;5,4,0,-2,-1;5,4,0,-2,0;5,4,0,-2,1;5,4,0,-1,-1;5,4,0,-1,0;5,4,0,-1,1;5,4,0,0,-1;5,4,0,0,0;5,4,0,0,1;5,4,0,1,-1;5,4,0,1,0;5,4,0,1,1;5,4,0,2,-1;5,4,0,2,0;5,4,0,2,1;5,4,1,-2,-1;5,4,1,-2,0;5,4,1,-2,1;5,4,1,-1,-1;5,4,1,-1,0;5,4,1,-1,1;5,4,1,0,-1;5,4,1,0,0;5,4,1,0,1;5,4,1,1,-1;5,4,1,1,0;5,4,1,1,1;5,4,1,2,-1;5,4,1,2,0;5,4,1,2,1;5,4,2,-2,-1;5,4,2,-2,0;5,4,2,-2,1;5,4,2,-1,-1;5,4,2,-1,0;5,4,2,-1,1;5,4,2,0,-1;5,4,2,0,0;5,4,2,0,1;5,4,2,1,-1;5,4,2,1,0;5,4,2,1,1;5,4,2,2,-1;5,4,2,2,0;5,4,2,2,1;5,4,3,-2,-1;5,4,3,-2,0;5,4,3,-2,1;5,4,3,-1,-1;5,4,3,-1,0;5,4,3,-1,1;5,4,3,0,-1;5,4,3,0,0;5,4,3,0,1;5,4,3,1,-1;5,4,3,1,0;5,4,3,1,1;5,4,3,2,-1;5,4,3,2,0;5,4,3,2,1;5,5,-3,-2,-1;5,5,-3,-2,0;5,5,-3,-2,1;5,5,-3,-1,-1;5,5,-3,-1,0;5,5,-3,-1,1;5,5,-3,0,-1;5,5,-3,0,0;5,5,-3,0,1;5,5,-3,1,-1;5,5,-3,1,0;5,5,-3,1,1;5,5,-3,2,-1;5,5,-3,2,0;5,5,-3,2,1;5,5,-2,-2,-1;5,5,-2,-2,0;5,5,-2,-2,1;5,5,-2,-1,-1;5,5,-2,-1,0;5,5,-2,-1,1;5,5,-2,0,-1;5,5,-2,0,0;5,5,-2,0,1;5,5,-2,1,-1;5,5,-2,1,0;5,5,-2,1,1;5,5,-2,2,-1;5,5,-2,2,0;5,5,-2,2,1;5,5,-1,-2,-1;5,5,-1,-2,0;5,5,-1,-2,1;5,5,-1,-1,-1;5,5,-1,-1,0;5,5,-1,-1,1;5,5,-1,0,-1;5,5,-1,0,0;5,5,-1,0,1;5,5,-1,1,-1;5,5,-1,1,0;5,5,-1,1,1;5,5,-1,2,-1;5,5,-1,2,0;5,5,-1,2,1;5,5,0,-2,-1;5,5,0,-2,0;5,5,0,-2,1;5,5,0,-1,-1;5,5,0,-1,0;5,5,0,-1,1;5,5,0,0,-1;5,5,0,0,0;5,5,0,0,1;5,5,0,1,-1;5,5,0,1,0;5,5,0,1,1;5,5,0,2,-1;5,5,0,2,0;5,5,0,2,1;5,5,1,-2,-1;5,5,1,-2,0;5,5,1,-2,1;5,5,1,-1,-1;5,5,1,-1,0;5,5,1,-1,1;5,5,1,0,-1;5,5,1,0,0;5,5,1,0,1;5,5,1,1,-1;5,5,1,1,0;5,5,1,1,1;5,5,1,2,-1;5,5,1,2,0;5,5,1,2,1;5,5,2,-2,-1;5,5,2,-2,0;5,5,2,-2,1;5,5,2,-1,-1;5,5,2,-1,0;5,5,2,-1,1;5,5,2,0,-1;5,5,2,0,0;5,5,2,0,1;5,5,2,1,-1;5,5,2,1,0;5,5,2,1,1;5,5,2,2,-1;5,5,2,2,0;5,5,2,2,1;5,5,3,-2,-1;5,5,3,-2,0;5,5,3,-2,1;5,5,3,-1,-1;5,5,3,-1,0;5,5,3,-1,1;5,5,3,0,-1;5,5,3,0,0;5,5,3,0,1;5,5,3,1,-1;5,5,3,1,0;5,5,3,1,1;5,5,3,2,-1;5,5,3,2,0;5,5,3,2,1;5,6,-3,-2,-1;5,6,-3,-2,0;5,6,-3,-2,1;5,6,-3,-1,-1;5,6,-3,-1,0;5,6,-3,-1,1;5,6,-3,0,-1;5,6,-3,0,0;5,6,-3,0,1;5,6,-3,1,-1;5,6,-3,1,0;5,6,-3,1,1;5,6,-3,2,-1;5,6,-3,2,0;5,6,-3,2,1;5,6,-2,-2,-1;5,6,-2,-2,0;5,6,-2,-2,1;5,6,-2,-1,-1;5,6,-2,-1,0;5,6,-2,-1,1;5,6,-2,0,-1;5,6,-2,0,0;5,6,-2,0,1;5,6,-2,1,-1;5,6,-2,1,0;5,6,-2,1,1;5,6,-2,2,-1;5,6,-2,2,0;5,6,-2,2,1;5,6,-1,-2,-1;5,6,-1,-2,0;5,6,-1,-2,1;5,6,-1,-1,-1;5,6,-1,-1,0;5,6,-1,-1,1;5,6,-1,0,-1;5,6,-1,0,0;5,6,-1,0,1;5,6,-1,1,-1;5,6,-1,1,0;5,6,-1,1,1;5,6,-1,2,-1;5,6,-1,2,0;5,6,-1,2,1;5,6,0,-2,-1;5,6,0,-2,0;5,6,0,-2,1;5,6,0,-1,-1;5,6,0,-1,0;5,6,0,-1,1;5,6,0,0,-1;5,6,0,0,0;5,6,0,0,1;5,6,0,1,-1;5,6,0,1,0;5,6,0,1,1;5,6,0,2,-1;5,6,0,2,0;5,6,0,2,1;5,6,1,-2,-1;5,6,1,-2,0;5,6,1,-2,1;5,6,1,-1,-1;5,6,1,-1,0;5,6,1,-1,1;5,6,1,0,-1;5,6,1,0,0;5,6,1,0,1;5,6,1,1,-1;5,6,1,1,0;5,6,1,1,1;5,6,1,2,-1;5,6,1,2,0;5,6,1,2,1;5,6,2,-2,-1;5,6,2,-2,0;5,6,2,-2,1;5,6,2,-1,-1;5,6,2,-1,0;5,6,2,-1,1;5,6,2,0,-1;5,6,2,0,0;5,6,2,0,1;5,6,2,1,-1;5,6,2,1,0;5,6,2,1,1;5,6,2,2,-1;5,6,2,2,0;5,6,2,2,1;5,6,3,-2,-1;5,6,3,-2,0;5,6,3,-2,1;5,6,3,-1,-1;5,6,3,-1,0;5,6,3,-1,1;5,6,3,0,-1;5,6,3,0,0;5,6,3,0,1;5,6,3,1,-1;5,6,3,1,0;5,6,3,1,1;5,6,3,2,-1;5,6,3,2,0;5,6,3,2,1;5,7,-3,-2,-1;5,7,-3,-2,0;5,7,-3,-2,1;5,7,-3,-1,-1;5,7,-3,-1,0;5,7,-3,-1,1;5,7,-3,0,-1;5,7,-3,0,0;5,7,-3,0,1;5,7,-3,1,-1;5,7,-3,1,0;5,7,-3,1,1;5,7,-3,2,-1;5,7,-3,2,0;5,7,-3,2,1;5,7,-2,-2,-1;5,7,-2,-2,0;5,7,-2,-2,1;5,7,-2,-1,-1;5,7,-2,-1,0;5,7,-2,-1,1;5,7,-2,0,-1;5,7,-2,0,0;5,7,-2,0,1;5,7,-2,1,-1;5,7,-2,1,0;5,7,-2,1,1;5,7,-2,2,-1;5,7,-2,2,0;5,7,-2,2,1;5,7,-1,-2,-1;5,7,-1,-2,0;5,7,-1,-2,1;5,7,-1,-1,-1;5,7,-1,-1,0;5,7,-1,-1,1;5,7,-1,0,-1;5,7,-1,0,0;5,7,-1,0,1;5,7,-1,1,-1;5,7,-1,1,0;5,7,-1,1,1;5,7,-1,2,-1;5,7,-1,2,0;5,7,-1,2,1;5,7,0,-2,-1;5,7,0,-2,0;5,7,0,-2,1;5,7,0,-1,-1;5,7,0,-1,0;5,7,0,-1,1;5,7,0,0,-1;5,7,0,0,0;5,7,0,0,1;5,7,0,1,-1;5,7,0,1,0;5,7,0,1,1;5,7,0,2,-1;5,7,0,2,0;5,7,0,2,1;5,7,1,-2,-1;5,7,1,-2,0;5,7,1,-2,1;5,7,1,-1,-1;5,7,1,-1,0;5,7,1,-1,1;5,7,1,0,-1;5,7,1,0,0;5,7,1,0,1;5,7,1,1,-1;5,7,1,1,0;5,7,1,1,1;5,7,1,2,-1;5,7,1,2,0;5,7,1,2,1;5,7,2,-2,-1;5,7,2,-2,0;5,7,2,-2,1;5,7,2,-1,-1;5,7,2,-1,0;5,7,2,-1,1;5,7,2,0,-1;5,7,2,0,0;5,7,2,0,1;5,7,2,1,-1;5,7,2,1,0;5,7,2,1,1;5,7,2,2,-1;5,7,2,2,0;5,7,2,2,1;5,7,3,-2,-1;5,7,3,-2,0;5,7,3,-2,1;5,7,3,-1,-1;5,7,3,-1,0;5,7,3,-1,1;5,7,3,0,-1;5,7,3,0,0;5,7,3,0,1;5,7,3,1,-1;5,7,3,1,0;5,7,3,1,1;5,7,3,2,-1;5,7,3,2,0;5,7,3,2,1;5,8,-3,-2,-1;5,8,-3,-2,0;5,8,-3,-2,1;5,8,-3,-1,-1;5,8,-3,-1,0;5,8,-3,-1,1;5,8,-3,0,-1;5,8,-3,0,0;5,8,-3,0,1;5,8,-3,1,-1;5,8,-3,1,0;5,8,-3,1,1;5,8,-3,2,-1;5,8,-3,2,0;5,8,-3,2,1;5,8,-2,-2,-1;5,8,-2,-2,0;5,8,-2,-2,1;5,8,-2,-1,-1;5,8,-2,-1,0;5,8,-2,-1,1;5,8,-2,0,-1;5,8,-2,0,0;5,8,-2,0,1;5,8,-2,1,-1;5,8,-2,1,0;5,8,-2,1,1;5,8,-2,2,-1;5,8,-2,2,0;5,8,-2,2,1;5,8,-1,-2,-1;5,8,-1,-2,0;5,8,-1,-2,1;5,8,-1,-1,-1;5,8,-1,-1,0;5,8,-1,-1,1;5,8,-1,0,-1;5,8,-1,0,0;5,8,-1,0,1;5,8,-1,1,-1;5,8,-1,1,0;5,8,-1,1,1;5,8,-1,2,-1;5,8,-1,2,0;5,8,-1,2,1;5,8,0,-2,-1;5,8,0,-2,0;5,8,0,-2,1;5,8,0,-1,-1;5,8,0,-1,0;5,8,0,-1,1;5,8,0,0,-1;5,8,0,0,0;5,8,0,0,1;5,8,0,1,-1;5,8,0,1,0;5,8,0,1,1;5,8,0,2,-1;5,8,0,2,0;5,8,0,2,1;5,8,1,-2,-1;5,8,1,-2,0;5,8,1,-2,1;5,8,1,-1,-1;5,8,1,-1,0;5,8,1,-1,1;5,8,1,0,-1;5,8,1,0,0;5,8,1,0,1;5,8,1,1,-1;5,8,1,1,0;5,8,1,1,1;5,8,1,2,-1;5,8,1,2,0;5,8,1,2,1;5,8,2,-2,-1;5,8,2,-2,0;5,8,2,-2,1;5,8,2,-1,-1;5,8,2,-1,0;5,8,2,-1,1;5,8,2,0,-1;5,8,2,0,0;5,8,2,0,1;5,8,2,1,-1;5,8,2,1,0;5,8,2,1,1;5,8,2,2,-1;5,8,2,2,0;5,8,2,2,1;5,8,3,-2,-1;5,8,3,-2,0;5,8,3,-2,1;5,8,3,-1,-1;5,8,3,-1,0;5,8,3,-1,1;5,8,3,0,-1;5,8,3,0,0;5,8,3,0,1;5,8,3,1,-1;5,8,3,1,0;5,8,3,1,1;5,8,3,2,-1;5,8,3,2,0;5,8,3,2,1;6,1,-3,-2;6,1,-3,-1;6,1,-3,0;6,1,-3,1;6,1,-3,2;6,1,-2,-2;6,1,-2,-1;6,1,-2,0;6,1,-2,1;6,1,-2,2;6,1,-1,-2;6,1,-1,-1;6,1,-1,0;6,1,-1,1;6,1,-1,2;6,1,0,-2;6,1,0,-1;6,1,0,0;6,1,0,1;6,1,0,2;6,1,1,-2;6,1,1,-1;6,1,1,0;6,1,1,1;6,1,1,2;6,1,2,-2;6,1,2,-1;6,1,2,0;6,1,2,1;6,1,2,2;6,1,3,-2;6,1,3,-1;6,1,3,0;6,1,3,1;6,1,3,2;6,2,-3,-2;6,2,-3,-1;6,2,-3,0;6,2,-3,1;6,2,-3,2;6,2,-2,-2;6,2,-2,-1;6,2,-2,0;6,2,-2,1;6,2,-2,2;6,2,-1,-2;6,2,-1,-1;6,2,-1,0;6,2,-1,1;6,2,-1,2;6,2,0,-2;6,2,0,-1;6,2,0,0;6,2,0,1;6,2,0,2;6,2,1,-2;6,2,1,-1;6,2,1,0;6,2,1,1;6,2,1,2;6,2,2,-2;6,2,2,-1;6,2,2,0;6,2,2,1;6,2,2,2;6,2,3,-2;6,2,3,-1;6,2,3,0;6,2,3,1;6,2,3,2;6,3,-3,-2;6,3,-3,-1;6,3,-3,0;6,3,-3,1;6,3,-3,2;6,3,-2,-2;6,3,-2,-1;6,3,-2,0;6,3,-2,1;6,3,-2,2;6,3,-1,-2;6,3,-1,-1;6,3,-1,0;6,3,-1,1;6,3,-1,2;6,3,0,-2;6,3,0,-1;6,3,0,0;6,3,0,1;6,3,0,2;6,3,1,-2;6,3,1,-1;6,3,1,0;6,3,1,1;6,3,1,2;6,3,2,-2;6,3,2,-1;6,3,2,0;6,3,2,1;6,3,2,2;6,3,3,-2;6,3,3,-1;6,3,3,0;6,3,3,1;6,3,3,2;6,4,-3,-2;6,4,-3,-1;6,4,-3,0;6,4,-3,1;6,4,-3,2;6,4,-2,-2;6,4,-2,-1;6,4,-2,0;6,4,-2,1;6,4,-2,2;6,4,-1,-2;6,4,-1,-1;6,4,-1,0;6,4,-1,1;6,4,-1,2;6,4,0,-2;6,4,0,-1;6,4,0,0;6,4,0,1;6,4,0,2;6,4,1,-2;6,4,1,-1;6,4,1,0;6,4,1,1;6,4,1,2;6,4,2,-2;6,4,2,-1;6,4,2,0;6,4,2,1;6,4,2,2;6,4,3,-2;6,4,3,-1;6,4,3,0;6,4,3,1;6,4,3,2;6,5,-3,-2;6,5,-3,-1;6,5,-3,0;6,5,-3,1;6,5,-3,2;6,5,-2,-2;6,5,-2,-1;6,5,-2,0;6,5,-2,1;6,5,-2,2;6,5,-1,-2;6,5,-1,-1;6,5,-1,0;6,5,-1,1;6,5,-1,2;6,5,0,-2;6,5,0,-1;6,5,0,0;6,5,0,1;6,5,0,2;6,5,1,-2;6,5,1,-1;6,5,1,0;6,5,1,1;6,5,1,2;6,5,2,-2;6,5,2,-1;6,5,2,0;6,5,2,1;6,5,2,2;6,5,3,-2;6,5,3,-1;6,5,3,0;6,5,3,1;6,5,3,2;6,6,-3,-2;6,6,-3,-1;6,6,-3,0;6,6,-3,1;6,6,-3,2;6,6,-2,-2;6,6,-2,-1;6,6,-2,0;6,6,-2,1;6,6,-2,2;6,6,-1,-2;6,6,-1,-1;6,6,-1,0;6,6,-1,1;6,6,-1,2;6,6,0,-2;6,6,0,-1;6,6,0,0;6,6,0,1;6,6,0,2;6,6,1,-2;6,6,1,-1;6,6,1,0;6,6,1,1;6,6,1,2;6,6,2,-2;6,6,2,-1;6,6,2,0;6,6,2,1;6,6,2,2;6,6,3,-2;6,6,3,-1;6,6,3,0;6,6,3,1;6,6,3,2;6,7,-3,-2;6,7,-3,-1;6,7,-3,0;6,7,-3,1;6,7,-3,2;6,7,-2,-2;6,7,-2,-1;6,7,-2,0;6,7,-2,1;6,7,-2,2;6,7,-1,-2;6,7,-1,-1;6,7,-1,0;6,7,-1,1;6,7,-1,2;6,7,0,-2;6,7,0,-1;6,7,0,0;6,7,0,1;6,7,0,2;6,7,1,-2;6,7,1,-1;6,7,1,0;6,7,1,1;6,7,1,2;6,7,2,-2;6,7,2,-1;6,7,2,0;6,7,2,1;6,7,2,2;6,7,3,-2;6,7,3,-1;6,7,3,0;6,7,3,1;6,7,3,2;6,8,-3,-2;6,8,-3,-1;6,8,-3,0;6,8,-3,1;6,8,-3,2;6,8,-2,-2;6,8,-2,-1;6,8,-2,0;6,8,-2,1;6,8,-2,2;6,8,-1,-2;6,8,-1,-1;6,8,-1,0;6,8,-1,1;6,8,-1,2;6,8,0,-2;6,8,0,-1;6,8,0,0;6,8,0,1;6,8,0,2;6,8,1,-2;6,8,1,-1;6,8,1,0;6,8,1,1;6,8,1,2;6,8,2,-2;6,8,2,-1;6,8,2,0;6,8,2,1;6,8,2,2;6,8,3,-2;6,8,3,-1;6,8,3,0;6,8,3,1;6,8,3,2;7,1,-3;7,1,-2;7,1,-1;7,1,0;7,1,1;7,1,2;7,1,3;7,2,-3;7,2,-2;7,2,-1;7,2,0;7,2,1;7,2,2;7,2,3;7,3,-3;7,3,-2;7,3,-1;7,3,0;7,3,1;7,3,2;7,3,3;7,4,-3;7,4,-2;7,4,-1;7,4,0;7,4,1;7,4,2;7,4,3;7,5,-3;7,5,-2;7,5,-1;7,5,0;7,5,1;7,5,2;7,5,3;7,6,-3;7,6,-2;7,6,-1;7,6,0;7,6,1;7,6,2;7,6,3;7,7,-3;7,7,-2;7,7,-1;7,7,0;7,7,1;7,7,2;7,7,3;7,8,-3;7,8,-2;7,8,-1;7,8,0;7,8,1;7,8,2;7,8,3;8,1;8,2;8,3;8,4;8,5;8,6;8,7;8,8

Pattern

All ranges are inclusive:

  • The first index is in the range 1 to 8 (or 0 to 7 if you want), and is always included.
  • The second index is in the range 1 to 8 (or 0 to 7 if you want), and is always included.
  • The third index is in the range ‒3 to 3, but is only included if the first index is in the range 2 to 7.
  • The fourth index is in the range ‒2 to 2, but is only included if the first index is in the range 3 to 6.
  • The fifth index is in the range ‒1 to 1, but is only included if the first index is 4 or 5.

Examples

Compute all valid indices or (assuming 1-based enumeration of the first two dimensions):

Valid:

1,6
2,2,-3
2,2,2
3,1,2,1
5,1,2,1,0
7,1,-1
8,8

Invalid

1
1,6,1
2,1
2,2,-4
3,1,2
7,7
8,0
8,1,1
8,-1
\$\endgroup\$
4
  • \$\begingroup\$ Could you please modify the list so that they are newline-separated instead of semicolon-separated, it makes things clearer so I can test. \$\endgroup\$
    – user100690
    May 20 at 15:26
  • \$\begingroup\$ @ophact You mean the test cases or the full list? The full list would be awfully long. \$\endgroup\$
    – Adám
    May 20 at 15:28
  • \$\begingroup\$ The test cases. \$\endgroup\$
    – user100690
    May 20 at 15:29
  • \$\begingroup\$ @ophact 'tis done. \$\endgroup\$
    – Adám
    May 20 at 15:38
7
\$\begingroup\$

JavaScript (ES6),  74 66  60 bytes

Expects the first two dimensions in 0-indexed format. Returns 0 for true or a positive integer for false.

a=>a.some(x=>x<-(q=i--&3)|x>(q||7),i=.5)|-i^"12344321"[a[0]]

Try it online!

How?

For each value \$x\$ at position \$i\$:

  • we compute \$q = (1/2-i)\operatorname{AND} 3\$ which maps \$[0,1,2,3,4]\$ to \$[0,0,3,2,1]\$
  • we make sure that we have \$x\ge -q\$ and either \$x \le q\$ if \$q\neq 0\$, or \$x\le 7\$ if \$q=0\$

In the actual implementation, we start with \$i=1/2\$ and subtract \$1\$ after each iteration.

We finally make sure that the length is consistent with the leading dimension:

-i ^ "12344321"[a[0]]

An empty list would pass this test, but the list is guaranteed to be non-empty as per the challenge rules.

\$\endgroup\$
0
4
\$\begingroup\$

JavaScript (Node.js), 91... 63 bytes

n=>n.some(e=>i++<2?e<1|e>8:e<i-6|e>6-i,i=0)|i^' 23455432'[n[0]]

Try it online!

The ultra-long function. I would appreciate a trick that can get rid of all these annoying &s. Partial credit to @Arnauld as I did not think of the string indexing trick. [I really need to improve my critical thinking skills.]

How does it work?

Nothing really complex, unlike in some of my more complex answers. Really just checking to see if the length is incorrect. This is done by performing an XOR (the bitwise equivalent of != which saves one byte) against the character at n[0] of 23455432 [the first element is at least 1, so no worries about selecting the space].

We also check if, for some element in n, that either it is outside the required bounds. This saved 1 byte as some is 1 byte shorter than every.

Returns 0 for valid and a positive integer for invalid. If I must return a boolean, please let me know, and I will change the XOR to a &&.

\$\endgroup\$
3
\$\begingroup\$

Charcoal, 39 33 bytes

∧⁼LθI§”)⊟&1x”§θ⁰⬤θ⎇‹κ²⁼﹪ι⁸ι‹↔ι⁻⁶κ

Try it online! Link is to verbose version of code. 0-indexed. Outputs a Charcoal boolean, i.e. - for valid, nothing for invalid. Explanation:

∧⁼LθI§”)⊟&1x”§θ⁰

Check that the number of elements is correct, and...

⬤θ⎇‹κ²⁼﹪ι⁸ι‹↔ι⁻⁶κ

... that the first two elements are from 0 to 7, and the remaining elements are within the desired absolute range.

\$\endgroup\$
3
\$\begingroup\$

JavaScript (ES6), 53 bytes

a=>a.some(x=>i++<0?x&~7:x*x>15-i*4,i=-2)|(a[0]^i)%7|a

Try it online!

Some ideas are based on Arnauld's and ophact's answer, some how.

-3 bytes by Arnauld.

Take input as an array. First 2 dimension are 0-indexed. Output falsy (zero) for valid Dimensional Chess position, and truthy (non-zero) otherwise.

The first part a.some(x=>i++<0?x<0|x>7:x*x>15-i*4,i=-2) check

  1. every digits are in given range
  2. given list contains no more than 5 elements
n-th Dim i++<0 i 15-i*4 explain
0 true -1 N/A \$x<0\lor x>7\$
1 true 0 N/A \$x<0\lor x>7\$
2 false 1 11 \$x>3 \lor x < -3\$
3 false 2 7 \$x>2 \lor x < -2\$
4 false 3 3 \$x>1 \lor x < -1\$
5 false 4 -1 \$x^2>-1\$ always truthy

The second part (a[0]^i)%7 checks if given list has correct length. After first part (if it successfully returned falsy):

a[0] length i a[0]^i (a[0]^i)%7
0 2 0 0 0
1 3 1 0 0
2 4 2 0 0
3 5 3 0 0
4 5 3 7 0
5 4 2 7 0
6 3 1 7 0
7 2 0 7 0

We can safely assume \$i<4\$ here, since otherwise \$x^2>15-4i\$ already reports the input invalid. And therefore, the length is valid iff (a[0]^i)%7 is 0.

\$\endgroup\$
7
  • \$\begingroup\$ Could you use x&8 instead of x<0|x>7? \$\endgroup\$
    – Arnauld
    May 21 at 9:48
  • \$\begingroup\$ @Arnauld Do you mean x&-8? \$\endgroup\$
    – tsh
    May 21 at 15:16
  • \$\begingroup\$ No, I do mean x&8. My understanding is that all values are guaranteed to be in [-8..8], in which case testing x&8 is equivalent to test x<0|x>7. \$\endgroup\$
    – Arnauld
    May 21 at 15:32
  • \$\begingroup\$ @Arnauld how is x<0 guaranteed if x&8 is used? \$\endgroup\$
    – snr
    May 21 at 20:45
  • 1
    \$\begingroup\$ This returns 0 for an input of [6], but that's not a valid input, is it? \$\endgroup\$
    – Neil
    May 21 at 21:21
2
\$\begingroup\$

Haskell, 74 bytes

do i<-[1..4];z<-mapM id$take i[[1..8],[-3..3],[-2..2],[-1..1]];[i:z,9-i:z]

Try it online!

To switch things up a bit, the code above computes the list of all valid positions, 1-indexed.

\$\endgroup\$
2
\$\begingroup\$

R, 102 bytes

function(x){while(!is.na(a<-x[F<-F+1]))T=T&"if"(F<3,a>0&a<9,abs(a)<7-F);T&sum(x|1)==5.5-abs(x[1]-4.5)}

Try it online!

Horribly long, but at last it's working.

Go look at much better @Nick's answer.

\$\endgroup\$
2
\$\begingroup\$

R >= 4.1, 77 71 bytes

\(x)all(x[1:2]>0,abs(x)<c(9,9,4:2)[1:(l=sum(x|1))],l==c(2:5,5:2)[x[1]])

Try it online!

A function taking a vector of integers and returning TRUE or FALSE. Note on TIO, \ is substituted by function since TIO is currently still running R 3.5.2, but this is functionally identical.

Thanks to @pajonk for saving 6 bytes!

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Nice one! Also, -6 bytes \$\endgroup\$
    – pajonk
    May 22 at 17:50
  • \$\begingroup\$ @pajonk thanks! \$\endgroup\$ May 22 at 17:53
2
\$\begingroup\$

Jelly, 28 27 bytes

99432D>Aaḣ2>0ƊẠaL’=ị4Rm0¤Ḣ$

Try it online!

A monadic link taking a list of integers and returning 1 for true and 0 for false. Uses 1-indexing for the first two dimensions.

\$\endgroup\$
1
\$\begingroup\$

Stax, 25 bytes

ünà<0(↑P⌡◙«VLR¬Θ☺úG▀╓pé▓2

Run and debug it

Removed :b!

nonzero if truthy, zero if falsy.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.