This example uses a database of a complete set of possible board configurations at the end of tic-tac-toe games, where "x" is assumed to have played first. The target concept is "win for x" (i.e., true when "x" has one of 8 possible ways to create a "three-in-a-row").
There are nine nominal input attributes for each square on the tic-tac-toe board and are encoded such that 0=player x has taken, 1=player o has taken, 2=blank.
The predicted atribute is a win or lose at tic-tac-toe. For this example the first 626 observations are a win and the next 332 are loss.
The structure of the network consists of 27 input nodes and three layers, with five perceptrons in the first hidden layer, three perceptrons in the second hidden layer, and one perceptron in the output layer.
There are a total of 162 weights in this network. The activations functions are logistic for all layers. Since the target output is binary classification the logistic activation function must be used in the output layer. Training is conducted using the quasi-newton trainer using the binary entropy error function provided by the BinaryClassification
class.
using System; using Imsl.DataMining.Neural; using PrintMatrix = Imsl.Math.PrintMatrix; using PrintMatrixFormat = Imsl.Math.PrintMatrixFormat; using Random = Imsl.Stat.Random; //***************************************************************************** // Three Layer Feed-Forward Network with 4 inputs, all // continuous, and 2 classification categories. // // new classification training_ex4.c // // Three Layer Feed-Forward Network with 4 inputs, all // continuous, and 2 classification categories. // // This database encodes the complete set of possible board configurations // at the end of tic-tac-toe games, where "x" is assumed to have played // first. The target concept is "win for x" (i.e., true when "x" has one // of 8 possible ways to create a "three-in-a-row"). // // Predicted attribute: win or loose at tic-tac-toe // First 626 obs are positive (win) and the next 332 are negative (loss) // // Input Attributes (10 categorical Attributes) // Attribute Information: (0=player x has taken, 1=player o has taken, 2=blank) // // 1. top-left-square: {x,o,b} // 2. top-middle-square: {x,o,b} // 3. top-right-square: {x,o,b} // 4. middle-left-square: {x,o,b} // 5. middle-middle-square: {x,o,b} // 6. middle-right-square: {x,o,b} // 7. bottom-left-square: {x,o,b} // 8. bottom-middle-square: {x,o,b} // 9. bottom-right-square: {x,o,b} // 10. Class: {positive,negative} // //***************************************************************************** [Serializable] public class BinaryClassificationEx2 { private static int nObs = 958; // number of training patterns private static int nInputs = 27; // 9 nominal coded as 0=x, 1=O, 2=blank private static int nOutputs = 1; // one continuous output (nClasses=2) private static int nPerceptrons1 = 5; // perceptrons in 1st hidden layer private static int nPerceptrons2 = 3; // perceptrons in 2nd hidden layer private static IActivation hiddenLayerActivation = Imsl.DataMining.Neural.Activation.Logistic; private static IActivation outputLayerActivation = Imsl.DataMining.Neural.Activation.Logistic; private static int[][] data = new int[][]{new int[]{0, 0, 0, 0, 1, 1, 0, 1, 1}, new int[]{0, 0, 0, 0, 1, 1, 1, 0, 1}, new int[]{0, 0, 0, 0, 1, 1, 1, 1, 0}, new int[]{0, 0, 0, 0, 1, 1, 1, 2, 2}, new int[]{0, 0, 0, 0, 1, 1, 2, 1, 2}, new int[]{0, 0, 0, 0, 1, 1, 2, 2, 1}, new int[]{0, 0, 0, 0, 1, 2, 1, 1, 2}, new int[]{0, 0, 0, 0, 1, 2, 1, 2, 1}, new int[]{0, 0, 0, 0, 1, 2, 2, 1, 1}, new int[]{0, 0, 0, 0, 2, 1, 1, 1, 2}, new int[]{0, 0, 0, 0, 2, 1, 1, 2, 1}, new int[]{0, 0, 0, 0, 2, 1, 2, 1, 1}, new int[]{0, 0, 0, 1, 0, 1, 0, 1, 1}, new int[]{0, 0, 0, 1, 0, 1, 1, 0, 1}, new int[]{0, 0, 0, 1, 0, 1, 1, 1, 0}, new int[]{0, 0, 0, 1, 0, 1, 1, 2, 2}, new int[]{0, 0, 0, 1, 0, 1, 2, 1, 2}, new int[]{0, 0, 0, 1, 0, 1, 2, 2, 1}, new int[]{0, 0, 0, 1, 0, 2, 1, 1, 2}, new int[]{0, 0, 0, 1, 0, 2, 1, 2, 1}, new int[]{0, 0, 0, 1, 0, 2, 2, 1, 1}, new int[]{0, 0, 0, 1, 1, 0, 0, 1, 1}, new int[]{0, 0, 0, 1, 1, 0, 1, 0, 1}, new int[]{0, 0, 0, 1, 1, 0, 1, 1, 0}, new int[]{0, 0, 0, 1, 1, 0, 1, 2, 2}, new int[]{0, 0, 0, 1, 1, 0, 2, 1, 2}, new int[]{0, 0, 0, 1, 1, 0, 2, 2, 1}, new int[]{0, 0, 0, 1, 1, 2, 0, 1, 2}, new int[]{0, 0, 0, 1, 1, 2, 0, 2, 1}, new int[]{0, 0, 0, 1, 1, 2, 1, 0, 2}, new int[]{0, 0, 0, 1, 1, 2, 1, 2, 0}, new int[]{0, 0, 0, 1, 1, 2, 2, 0, 1}, new int[]{0, 0, 0, 1, 1, 2, 2, 1, 0}, new int[]{0, 0, 0, 1, 1, 2, 2, 2, 2}, new int[]{0, 0, 0, 1, 2, 0, 1, 1, 2}, new int[]{0, 0, 0, 1, 2, 0, 1, 2, 1}, new int[]{0, 0, 0, 1, 2, 0, 2, 1, 1}, new int[]{0, 0, 0, 1, 2, 1, 0, 1, 2}, new int[]{0, 0, 0, 1, 2, 1, 0, 2, 1}, new int[]{0, 0, 0, 1, 2, 1, 1, 0, 2}, new int[]{0, 0, 0, 1, 2, 1, 1, 2, 0}, new int[]{0, 0, 0, 1, 2, 1, 2, 0, 1}, new int[]{0, 0, 0, 1, 2, 1, 2, 1, 0}, new int[]{0, 0, 0, 1, 2, 1, 2, 2, 2}, new int[]{0, 0, 0, 1, 2, 2, 0, 1, 1}, new int[]{0, 0, 0, 1, 2, 2, 1, 0, 1}, new int[]{0, 0, 0, 1, 2, 2, 1, 1, 0}, new int[]{0, 0, 0, 1, 2, 2, 1, 2, 2}, new int[]{0, 0, 0, 1, 2, 2, 2, 1, 2}, new int[]{0, 0, 0, 1, 2, 2, 2, 2, 1}, new int[]{0, 0, 0, 2, 0, 1, 1, 1, 2}, new int[]{0, 0, 0, 2, 0, 1, 1, 2, 1}, new int[]{0, 0, 0, 2, 0, 1, 2, 1, 1}, new int[]{0, 0, 0, 2, 1, 0, 1, 1, 2}, new int[]{0, 0, 0, 2, 1, 0, 1, 2, 1}, new int[]{0, 0, 0, 2, 1, 0, 2, 1, 1}, new int[]{0, 0, 0, 2, 1, 1, 0, 1, 2}, new int[]{0, 0, 0, 2, 1, 1, 0, 2, 1}, new int[]{0, 0, 0, 2, 1, 1, 1, 0, 2}, new int[]{0, 0, 0, 2, 1, 1, 1, 2, 0}, new int[]{0, 0, 0, 2, 1, 1, 2, 0, 1}, new int[]{0, 0, 0, 2, 1, 1, 2, 1, 0}, new int[]{0, 0, 0, 2, 1, 1, 2, 2, 2}, new int[]{0, 0, 0, 2, 1, 2, 0, 1, 1}, new int[]{0, 0, 0, 2, 1, 2, 1, 0, 1}, new int[]{0, 0, 0, 2, 1, 2, 1, 1, 0}, new int[]{0, 0, 0, 2, 1, 2, 1, 2, 2}, new int[]{0, 0, 0, 2, 1, 2, 2, 1, 2}, new int[]{0, 0, 0, 2, 1, 2, 2, 2, 1}, new int[]{0, 0, 0, 2, 2, 1, 0, 1, 1}, new int[]{0, 0, 0, 2, 2, 1, 1, 0, 1}, new int[]{0, 0, 0, 2, 2, 1, 1, 1, 0}, new int[]{0, 0, 0, 2, 2, 1, 1, 2, 2}, new int[]{0, 0, 0, 2, 2, 1, 2, 1, 2}, new int[]{0, 0, 0, 2, 2, 1, 2, 2, 1}, new int[]{0, 0, 0, 2, 2, 2, 1, 1, 2}, new int[]{0, 0, 0, 2, 2, 2, 1, 2, 1}, new int[]{0, 0, 0, 2, 2, 2, 2, 1, 1}, new int[]{0, 0, 1, 0, 0, 1, 1, 1, 0}, new int[]{0, 0, 1, 0, 1, 0, 0, 1, 1}, new int[]{0, 0, 1, 0, 1, 1, 0, 1, 0}, new int[]{0, 0, 1, 0, 1, 1, 0, 2, 2}, new int[]{0, 0, 1, 0, 1, 2, 0, 1, 2}, new int[]{0, 0, 1, 0, 1, 2, 0, 2, 1}, new int[]{0, 0, 1, 0, 2, 1, 0, 1, 2}, new int[]{0, 0, 1, 0, 2, 2, 0, 1, 1}, new int[]{0, 0, 1, 1, 0, 0, 1, 0, 1}, new int[]{0, 0, 1, 1, 0, 0, 1, 1, 0}, new int[]{0, 0, 1, 1, 0, 1, 0, 1, 0}, new int[]{0, 0, 1, 1, 0, 1, 1, 0, 0}, new int[]{0, 0, 1, 1, 0, 1, 2, 0, 2}, new int[]{0, 0, 1, 1, 0, 1, 2, 2, 0}, new int[]{0, 0, 1, 1, 0, 2, 1, 0, 2}, new int[]{0, 0, 1, 1, 0, 2, 1, 2, 0}, new int[]{0, 0, 1, 1, 0, 2, 2, 0, 1}, new int[]{0, 0, 1, 1, 0, 2, 2, 1, 0}, new int[]{0, 0, 1, 2, 0, 1, 1, 0, 2}, new int[]{0, 0, 1, 2, 0, 1, 1, 2, 0}, new int[]{0, 0, 1, 2, 0, 1, 2, 1, 0}, new int[]{0, 0, 1, 2, 0, 2, 1, 0, 1}, new int[]{0, 0, 1, 2, 0, 2, 1, 1, 0}, new int[]{0, 0, 2, 0, 1, 1, 0, 1, 2}, new int[]{0, 0, 2, 0, 1, 1, 0, 2, 1}, new int[]{0, 0, 2, 0, 1, 2, 0, 1, 1}, new int[]{0, 0, 2, 0, 2, 1, 0, 1, 1}, new int[]{0, 0, 2, 1, 0, 1, 1, 0, 2}, new int[]{0, 0, 2, 1, 0, 1, 1, 2, 0}, new int[]{0, 0, 2, 1, 0, 1, 2, 0, 1}, new int[]{0, 0, 2, 1, 0, 1, 2, 1, 0}, new int[]{0, 0, 2, 1, 0, 2, 1, 0, 1}, new int[]{0, 0, 2, 1, 0, 2, 1, 1, 0}, new int[]{0, 0, 2, 2, 0, 1, 1, 0, 1}, new int[]{0, 0, 2, 2, 0, 1, 1, 1, 0}, new int[]{0, 1, 0, 0, 0, 1, 0, 1, 1}, new int[]{0, 1, 0, 0, 0, 1, 1, 1, 0}, new int[]{0, 1, 0, 0, 1, 1, 0, 0, 1}, new int[]{0, 1, 0, 0, 1, 1, 0, 2, 2}, new int[]{0, 1, 0, 0, 1, 2, 0, 2, 1}, new int[]{0, 1, 0, 0, 2, 1, 0, 1, 2}, new int[]{0, 1, 0, 0, 2, 1, 0, 2, 1}, new int[]{0, 1, 0, 0, 2, 2, 0, 1, 1}, new int[]{0, 1, 0, 1, 0, 0, 0, 1, 1}, new int[]{0, 1, 0, 1, 0, 0, 1, 1, 0}, new int[]{0, 1, 0, 1, 0, 1, 0, 0, 1}, new int[]{0, 1, 0, 1, 0, 1, 0, 1, 0}, new int[]{0, 1, 0, 1, 0, 1, 0, 2, 2}, new int[]{0, 1, 0, 1, 0, 1, 1, 0, 0}, new int[]{0, 1, 0, 1, 0, 1, 2, 2, 0}, new int[]{0, 1, 0, 1, 0, 2, 0, 1, 2}, new int[]{0, 1, 0, 1, 0, 2, 0, 2, 1}, new int[]{0, 1, 0, 1, 0, 2, 1, 2, 0}, new int[]{0, 1, 0, 1, 0, 2, 2, 1, 0}, new int[]{0, 1, 0, 1, 1, 0, 1, 0, 0}, new int[]{0, 1, 0, 1, 1, 0, 2, 2, 0}, new int[]{0, 1, 0, 1, 2, 0, 1, 2, 0}, new int[]{0, 1, 0, 1, 2, 0, 2, 1, 0}, new int[]{0, 1, 0, 2, 0, 1, 0, 1, 2}, new int[]{0, 1, 0, 2, 0, 1, 0, 2, 1}, new int[]{0, 1, 0, 2, 0, 1, 1, 2, 0}, new int[]{0, 1, 0, 2, 0, 1, 2, 1, 0}, new int[]{0, 1, 0, 2, 0, 2, 0, 1, 1}, new int[]{0, 1, 0, 2, 0, 2, 1, 1, 0}, new int[]{0, 1, 0, 2, 1, 0, 1, 2, 0}, new int[]{0, 1, 0, 2, 2, 0, 1, 1, 0}, new int[]{0, 1, 1, 0, 0, 0, 0, 1, 1}, new int[]{0, 1, 1, 0, 0, 0, 1, 0, 1}, new int[]{0, 1, 1, 0, 0, 0, 1, 1, 0}, new int[]{0, 1, 1, 0, 0, 0, 1, 2, 2}, new int[]{0, 1, 1, 0, 0, 0, 2, 1, 2}, new int[]{0, 1, 1, 0, 0, 0, 2, 2, 1}, new int[]{0, 1, 1, 0, 0, 1, 0, 1, 0}, new int[]{0, 1, 1, 0, 0, 1, 0, 2, 2}, new int[]{0, 1, 1, 0, 0, 1, 1, 0, 0}, new int[]{0, 1, 1, 0, 0, 1, 2, 2, 0}, new int[]{0, 1, 1, 0, 0, 2, 0, 1, 2}, new int[]{0, 1, 1, 0, 0, 2, 0, 2, 1}, new int[]{0, 1, 1, 0, 0, 2, 1, 2, 0}, new int[]{0, 1, 1, 0, 0, 2, 2, 1, 0}, new int[]{0, 1, 1, 0, 1, 0, 0, 0, 1}, new int[]{0, 1, 1, 0, 1, 0, 0, 2, 2}, new int[]{0, 1, 1, 0, 1, 1, 0, 0, 0}, new int[]{0, 1, 1, 0, 1, 2, 0, 0, 2}, new int[]{0, 1, 1, 0, 1, 2, 0, 2, 0}, new int[]{0, 1, 1, 0, 2, 0, 0, 1, 2}, new int[]{0, 1, 1, 0, 2, 0, 0, 2, 1}, new int[]{0, 1, 1, 0, 2, 1, 0, 0, 2}, new int[]{0, 1, 1, 0, 2, 1, 0, 2, 0}, new int[]{0, 1, 1, 0, 2, 2, 0, 0, 1}, new int[]{0, 1, 1, 0, 2, 2, 0, 1, 0}, new int[]{0, 1, 1, 0, 2, 2, 0, 2, 2}, new int[]{0, 1, 1, 1, 0, 0, 0, 1, 0}, new int[]{0, 1, 1, 1, 0, 0, 1, 0, 0}, new int[]{0, 1, 1, 1, 0, 0, 2, 2, 0}, new int[]{0, 1, 1, 1, 0, 1, 0, 0, 0}, new int[]{0, 1, 1, 1, 0, 2, 0, 2, 0}, new int[]{0, 1, 1, 1, 0, 2, 2, 0, 0}, new int[]{0, 1, 1, 1, 1, 0, 0, 0, 0}, new int[]{0, 1, 1, 1, 2, 2, 0, 0, 0}, new int[]{0, 1, 1, 2, 0, 0, 1, 2, 0}, new int[]{0, 1, 1, 2, 0, 0, 2, 1, 0}, new int[]{0, 1, 1, 2, 0, 1, 0, 2, 0}, new int[]{0, 1, 1, 2, 0, 1, 2, 0, 0}, new int[]{0, 1, 1, 2, 0, 2, 0, 1, 0}, new int[]{0, 1, 1, 2, 0, 2, 1, 0, 0}, new int[]{0, 1, 1, 2, 0, 2, 2, 2, 0}, new int[]{0, 1, 1, 2, 1, 2, 0, 0, 0}, new int[]{0, 1, 1, 2, 2, 1, 0, 0, 0}, new int[]{0, 1, 2, 0, 0, 0, 1, 1, 2}, new int[]{0, 1, 2, 0, 0, 0, 1, 2, 1}, new int[]{0, 1, 2, 0, 0, 0, 2, 1, 1}, new int[]{0, 1, 2, 0, 0, 1, 0, 1, 2}, new int[]{0, 1, 2, 0, 0, 1, 0, 2, 1}, new int[]{0, 1, 2, 0, 0, 1, 1, 2, 0}, new int[]{0, 1, 2, 0, 0, 1, 2, 1, 0}, new int[]{0, 1, 2, 0, 0, 2, 0, 1, 1}, new int[]{0, 1, 2, 0, 0, 2, 1, 1, 0}, new int[]{0, 1, 2, 0, 1, 0, 0, 2, 1}, new int[]{0, 1, 2, 0, 1, 1, 0, 0, 2}, new int[]{0, 1, 2, 0, 1, 1, 0, 2, 0}, new int[]{0, 1, 2, 0, 1, 2, 0, 0, 1}, new int[]{0, 1, 2, 0, 1, 2, 0, 2, 2}, new int[]{0, 1, 2, 0, 2, 0, 0, 1, 1}, new int[]{0, 1, 2, 0, 2, 1, 0, 0, 1}, new int[]{0, 1, 2, 0, 2, 1, 0, 1, 0}, new int[]{0, 1, 2, 0, 2, 1, 0, 2, 2}, new int[]{0, 1, 2, 0, 2, 2, 0, 1, 2}, new int[]{0, 1, 2, 0, 2, 2, 0, 2, 1}, new int[]{0, 1, 2, 1, 0, 0, 1, 2, 0}, new int[]{0, 1, 2, 1, 0, 0, 2, 1, 0}, new int[]{0, 1, 2, 1, 0, 1, 0, 2, 0}, new int[]{0, 1, 2, 1, 0, 1, 2, 0, 0}, new int[]{0, 1, 2, 1, 0, 2, 0, 1, 0}, new int[]{0, 1, 2, 1, 0, 2, 1, 0, 0}, new int[]{0, 1, 2, 1, 0, 2, 2, 2, 0}, new int[]{0, 1, 2, 1, 1, 2, 0, 0, 0}, new int[]{0, 1, 2, 1, 2, 1, 0, 0, 0}, new int[]{0, 1, 2, 2, 0, 0, 1, 1, 0}, new int[]{0, 1, 2, 2, 0, 1, 0, 1, 0}, new int[]{0, 1, 2, 2, 0, 1, 1, 0, 0}, new int[]{0, 1, 2, 2, 0, 1, 2, 2, 0}, new int[]{0, 1, 2, 2, 0, 2, 1, 2, 0}, new int[]{0, 1, 2, 2, 0, 2, 2, 1, 0}, new int[]{0, 1, 2, 2, 1, 1, 0, 0, 0}, new int[]{0, 2, 0, 0, 1, 1, 0, 1, 2}, new int[]{0, 2, 0, 0, 1, 1, 0, 2, 1}, new int[]{0, 2, 0, 0, 1, 2, 0, 1, 1}, new int[]{0, 2, 0, 0, 2, 1, 0, 1, 1}, new int[]{0, 2, 0, 1, 0, 1, 0, 1, 2}, new int[]{0, 2, 0, 1, 0, 1, 0, 2, 1}, new int[]{0, 2, 0, 1, 0, 1, 1, 2, 0}, new int[]{0, 2, 0, 1, 0, 1, 2, 1, 0}, new int[]{0, 2, 0, 1, 0, 2, 0, 1, 1}, new int[]{0, 2, 0, 1, 0, 2, 1, 1, 0}, new int[]{0, 2, 0, 1, 1, 0, 1, 2, 0}, new int[]{0, 2, 0, 1, 1, 0, 2, 1, 0}, new int[]{0, 2, 0, 1, 2, 0, 1, 1, 0}, new int[]{0, 2, 0, 2, 0, 1, 0, 1, 1}, new int[]{0, 2, 0, 2, 0, 1, 1, 1, 0}, new int[]{0, 2, 0, 2, 1, 0, 1, 1, 0}, new int[]{0, 2, 1, 0, 0, 0, 1, 1, 2}, new int[]{0, 2, 1, 0, 0, 0, 1, 2, 1}, new int[]{0, 2, 1, 0, 0, 0, 2, 1, 1}, new int[]{0, 2, 1, 0, 0, 1, 0, 1, 2}, new int[]{0, 2, 1, 0, 0, 1, 1, 2, 0}, new int[]{0, 2, 1, 0, 0, 1, 2, 1, 0}, new int[]{0, 2, 1, 0, 0, 2, 0, 1, 1}, new int[]{0, 2, 1, 0, 0, 2, 1, 1, 0}, new int[]{0, 2, 1, 0, 1, 0, 0, 1, 2}, new int[]{0, 2, 1, 0, 1, 0, 0, 2, 1}, new int[]{0, 2, 1, 0, 1, 1, 0, 0, 2}, new int[]{0, 2, 1, 0, 1, 1, 0, 2, 0}, new int[]{0, 2, 1, 0, 1, 2, 0, 0, 1}, new int[]{0, 2, 1, 0, 1, 2, 0, 1, 0}, new int[]{0, 2, 1, 0, 1, 2, 0, 2, 2}, new int[]{0, 2, 1, 0, 2, 0, 0, 1, 1}, new int[]{0, 2, 1, 0, 2, 1, 0, 1, 0}, new int[]{0, 2, 1, 0, 2, 1, 0, 2, 2}, new int[]{0, 2, 1, 0, 2, 2, 0, 1, 2}, new int[]{0, 2, 1, 0, 2, 2, 0, 2, 1}, new int[]{0, 2, 1, 1, 0, 0, 1, 2, 0}, new int[]{0, 2, 1, 1, 0, 0, 2, 1, 0}, new int[]{0, 2, 1, 1, 0, 1, 0, 2, 0}, new int[]{0, 2, 1, 1, 0, 1, 2, 0, 0}, new int[]{0, 2, 1, 1, 0, 2, 0, 1, 0}, new int[]{0, 2, 1, 1, 0, 2, 1, 0, 0}, new int[]{0, 2, 1, 1, 0, 2, 2, 2, 0}, new int[]{0, 2, 1, 1, 1, 2, 0, 0, 0}, new int[]{0, 2, 1, 1, 2, 1, 0, 0, 0}, new int[]{0, 2, 1, 2, 0, 0, 1, 1, 0}, new int[]{0, 2, 1, 2, 0, 1, 0, 1, 0}, new int[]{0, 2, 1, 2, 0, 1, 1, 0, 0}, new int[]{0, 2, 1, 2, 0, 1, 2, 2, 0}, new int[]{0, 2, 1, 2, 0, 2, 1, 2, 0}, new int[]{0, 2, 1, 2, 0, 2, 2, 1, 0}, new int[]{0, 2, 1, 2, 1, 1, 0, 0, 0}, new int[]{0, 2, 2, 0, 0, 1, 0, 1, 1}, new int[]{0, 2, 2, 0, 0, 1, 1, 1, 0}, new int[]{0, 2, 2, 0, 1, 0, 0, 1, 1}, new int[]{0, 2, 2, 0, 1, 1, 0, 0, 1}, new int[]{0, 2, 2, 0, 1, 1, 0, 1, 0}, new int[]{0, 2, 2, 0, 1, 1, 0, 2, 2}, new int[]{0, 2, 2, 0, 1, 2, 0, 1, 2}, new int[]{0, 2, 2, 0, 1, 2, 0, 2, 1}, new int[]{0, 2, 2, 0, 2, 1, 0, 1, 2}, new int[]{0, 2, 2, 0, 2, 1, 0, 2, 1}, new int[]{0, 2, 2, 0, 2, 2, 0, 1, 1}, new int[]{0, 2, 2, 1, 0, 0, 1, 1, 0}, new int[]{0, 2, 2, 1, 0, 1, 0, 1, 0}, new int[]{0, 2, 2, 1, 0, 1, 1, 0, 0}, new int[]{0, 2, 2, 1, 0, 1, 2, 2, 0}, new int[]{0, 2, 2, 1, 0, 2, 1, 2, 0}, new int[]{0, 2, 2, 1, 0, 2, 2, 1, 0}, new int[]{0, 2, 2, 2, 0, 1, 1, 2, 0}, new int[]{0, 2, 2, 2, 0, 1, 2, 1, 0}, new int[]{0, 2, 2, 2, 0, 2, 1, 1, 0}, new int[]{1, 0, 0, 0, 0, 1, 0, 1, 1}, new int[]{1, 0, 0, 0, 0, 1, 1, 0, 1}, new int[]{1, 0, 0, 0, 1, 0, 1, 1, 0}, new int[]{1, 0, 0, 1, 0, 0, 0, 1, 1}, new int[]{1, 0, 0, 1, 0, 1, 0, 0, 1}, new int[]{1, 0, 0, 1, 0, 1, 0, 1, 0}, new int[]{1, 0, 0, 1, 0, 1, 0, 2, 2}, new int[]{1, 0, 0, 1, 0, 1, 2, 0, 2}, new int[]{1, 0, 0, 1, 0, 2, 0, 1, 2}, new int[]{1, 0, 0, 1, 0, 2, 0, 2, 1}, new int[]{1, 0, 0, 1, 0, 2, 2, 0, 1}, new int[]{1, 0, 0, 1, 1, 0, 0, 1, 0}, new int[]{1, 0, 0, 1, 1, 0, 2, 2, 0}, new int[]{1, 0, 0, 1, 2, 0, 2, 1, 0}, new int[]{1, 0, 0, 2, 0, 1, 0, 1, 2}, new int[]{1, 0, 0, 2, 0, 1, 0, 2, 1}, new int[]{1, 0, 0, 2, 0, 1, 1, 0, 2}, new int[]{1, 0, 0, 2, 0, 1, 2, 0, 1}, new int[]{1, 0, 0, 2, 0, 2, 0, 1, 1}, new int[]{1, 0, 0, 2, 0, 2, 1, 0, 1}, new int[]{1, 0, 0, 2, 1, 0, 1, 2, 0}, new int[]{1, 0, 0, 2, 1, 0, 2, 1, 0}, new int[]{1, 0, 0, 2, 2, 0, 1, 1, 0}, new int[]{1, 0, 1, 0, 0, 0, 0, 1, 1}, new int[]{1, 0, 1, 0, 0, 0, 1, 0, 1}, new int[]{1, 0, 1, 0, 0, 0, 1, 1, 0}, new int[]{1, 0, 1, 0, 0, 0, 1, 2, 2}, new int[]{1, 0, 1, 0, 0, 0, 2, 1, 2}, new int[]{1, 0, 1, 0, 0, 0, 2, 2, 1}, new int[]{1, 0, 1, 0, 0, 1, 1, 0, 0}, new int[]{1, 0, 1, 0, 0, 1, 2, 0, 2}, new int[]{1, 0, 1, 0, 0, 2, 1, 0, 2}, new int[]{1, 0, 1, 0, 0, 2, 2, 0, 1}, new int[]{1, 0, 1, 0, 1, 1, 0, 0, 0}, new int[]{1, 0, 1, 1, 0, 0, 0, 0, 1}, new int[]{1, 0, 1, 1, 0, 0, 2, 0, 2}, new int[]{1, 0, 1, 1, 0, 1, 0, 0, 0}, new int[]{1, 0, 1, 1, 0, 2, 0, 0, 2}, new int[]{1, 0, 1, 1, 0, 2, 2, 0, 0}, new int[]{1, 0, 1, 1, 1, 0, 0, 0, 0}, new int[]{1, 0, 1, 1, 2, 2, 0, 0, 0}, new int[]{1, 0, 1, 2, 0, 0, 1, 0, 2}, new int[]{1, 0, 1, 2, 0, 0, 2, 0, 1}, new int[]{1, 0, 1, 2, 0, 1, 0, 0, 2}, new int[]{1, 0, 1, 2, 0, 1, 2, 0, 0}, new int[]{1, 0, 1, 2, 0, 2, 0, 0, 1}, new int[]{1, 0, 1, 2, 0, 2, 1, 0, 0}, new int[]{1, 0, 1, 2, 0, 2, 2, 0, 2}, new int[]{1, 0, 1, 2, 1, 2, 0, 0, 0}, new int[]{1, 0, 1, 2, 2, 1, 0, 0, 0}, new int[]{1, 0, 2, 0, 0, 0, 1, 1, 2}, new int[]{1, 0, 2, 0, 0, 0, 1, 2, 1}, new int[]{1, 0, 2, 0, 0, 0, 2, 1, 1}, new int[]{1, 0, 2, 0, 0, 1, 1, 0, 2}, new int[]{1, 0, 2, 0, 0, 1, 2, 0, 1}, new int[]{1, 0, 2, 0, 0, 2, 1, 0, 1}, new int[]{1, 0, 2, 1, 0, 0, 2, 0, 1}, new int[]{1, 0, 2, 1, 0, 1, 0, 0, 2}, new int[]{1, 0, 2, 1, 0, 1, 2, 0, 0}, new int[]{1, 0, 2, 1, 0, 2, 0, 0, 1}, new int[]{1, 0, 2, 1, 0, 2, 2, 0, 2}, new int[]{1, 0, 2, 1, 1, 2, 0, 0, 0}, new int[]{1, 0, 2, 1, 2, 1, 0, 0, 0}, new int[]{1, 0, 2, 2, 0, 0, 1, 0, 1}, new int[]{1, 0, 2, 2, 0, 1, 0, 0, 1}, new int[]{1, 0, 2, 2, 0, 1, 1, 0, 0}, new int[]{1, 0, 2, 2, 0, 1, 2, 0, 2}, new int[]{1, 0, 2, 2, 0, 2, 1, 0, 2}, new int[]{1, 0, 2, 2, 0, 2, 2, 0, 1}, new int[]{1, 0, 2, 2, 1, 1, 0, 0, 0}, new int[]{1, 1, 0, 0, 0, 0, 0, 1, 1}, new int[]{1, 1, 0, 0, 0, 0, 1, 0, 1}, new int[]{1, 1, 0, 0, 0, 0, 1, 1, 0}, new int[]{1, 1, 0, 0, 0, 0, 1, 2, 2}, new int[]{1, 1, 0, 0, 0, 0, 2, 1, 2}, new int[]{1, 1, 0, 0, 0, 0, 2, 2, 1}, new int[]{1, 1, 0, 0, 0, 1, 0, 0, 1}, new int[]{1, 1, 0, 0, 0, 1, 0, 1, 0}, new int[]{1, 1, 0, 0, 0, 1, 0, 2, 2}, new int[]{1, 1, 0, 0, 0, 2, 0, 1, 2}, new int[]{1, 1, 0, 0, 0, 2, 0, 2, 1}, new int[]{1, 1, 0, 0, 1, 0, 1, 0, 0}, new int[]{1, 1, 0, 0, 1, 0, 2, 2, 0}, new int[]{1, 1, 0, 0, 1, 1, 0, 0, 0}, new int[]{1, 1, 0, 0, 2, 0, 1, 2, 0}, new int[]{1, 1, 0, 0, 2, 0, 2, 1, 0}, new int[]{1, 1, 0, 1, 0, 0, 0, 0, 1}, new int[]{1, 1, 0, 1, 0, 0, 0, 1, 0}, new int[]{1, 1, 0, 1, 0, 0, 0, 2, 2}, new int[]{1, 1, 0, 1, 0, 0, 2, 2, 0}, new int[]{1, 1, 0, 1, 0, 1, 0, 0, 0}, new int[]{1, 1, 0, 1, 0, 2, 0, 0, 2}, new int[]{1, 1, 0, 1, 0, 2, 0, 2, 0}, new int[]{1, 1, 0, 1, 1, 0, 0, 0, 0}, new int[]{1, 1, 0, 1, 2, 0, 0, 2, 0}, new int[]{1, 1, 0, 1, 2, 0, 2, 0, 0}, new int[]{1, 1, 0, 1, 2, 2, 0, 0, 0}, new int[]{1, 1, 0, 2, 0, 0, 0, 1, 2}, new int[]{1, 1, 0, 2, 0, 0, 0, 2, 1}, new int[]{1, 1, 0, 2, 0, 0, 1, 2, 0}, new int[]{1, 1, 0, 2, 0, 0, 2, 1, 0}, new int[]{1, 1, 0, 2, 0, 1, 0, 0, 2}, new int[]{1, 1, 0, 2, 0, 1, 0, 2, 0}, new int[]{1, 1, 0, 2, 0, 2, 0, 0, 1}, new int[]{1, 1, 0, 2, 0, 2, 0, 1, 0}, new int[]{1, 1, 0, 2, 0, 2, 0, 2, 2}, new int[]{1, 1, 0, 2, 1, 0, 0, 2, 0}, new int[]{1, 1, 0, 2, 1, 0, 2, 0, 0}, new int[]{1, 1, 0, 2, 1, 2, 0, 0, 0}, new int[]{1, 1, 0, 2, 2, 0, 0, 1, 0}, new int[]{1, 1, 0, 2, 2, 0, 1, 0, 0}, new int[]{1, 1, 0, 2, 2, 0, 2, 2, 0}, new int[]{1, 1, 0, 2, 2, 1, 0, 0, 0}, new int[]{1, 1, 2, 0, 0, 0, 0, 1, 2}, new int[]{1, 1, 2, 0, 0, 0, 0, 2, 1}, new int[]{1, 1, 2, 0, 0, 0, 1, 0, 2}, new int[]{1, 1, 2, 0, 0, 0, 1, 2, 0}, new int[]{1, 1, 2, 0, 0, 0, 2, 0, 1}, new int[]{1, 1, 2, 0, 0, 0, 2, 1, 0}, new int[]{1, 1, 2, 0, 0, 0, 2, 2, 2}, new int[]{1, 1, 2, 0, 1, 2, 0, 0, 0}, new int[]{1, 1, 2, 0, 2, 1, 0, 0, 0}, new int[]{1, 1, 2, 1, 0, 2, 0, 0, 0}, new int[]{1, 1, 2, 1, 2, 0, 0, 0, 0}, new int[]{1, 1, 2, 2, 0, 1, 0, 0, 0}, new int[]{1, 1, 2, 2, 1, 0, 0, 0, 0}, new int[]{1, 1, 2, 2, 2, 2, 0, 0, 0}, new int[]{1, 2, 0, 0, 0, 0, 1, 1, 2}, new int[]{1, 2, 0, 0, 0, 0, 1, 2, 1}, new int[]{1, 2, 0, 0, 0, 0, 2, 1, 1}, new int[]{1, 2, 0, 0, 0, 1, 0, 1, 2}, new int[]{1, 2, 0, 0, 0, 1, 0, 2, 1}, new int[]{1, 2, 0, 0, 0, 2, 0, 1, 1}, new int[]{1, 2, 0, 0, 1, 0, 1, 2, 0}, new int[]{1, 2, 0, 0, 1, 0, 2, 1, 0}, new int[]{1, 2, 0, 0, 2, 0, 1, 1, 0}, new int[]{1, 2, 0, 1, 0, 0, 0, 1, 2}, new int[]{1, 2, 0, 1, 0, 0, 0, 2, 1}, new int[]{1, 2, 0, 1, 0, 0, 2, 1, 0}, new int[]{1, 2, 0, 1, 0, 1, 0, 0, 2}, new int[]{1, 2, 0, 1, 0, 1, 0, 2, 0}, new int[]{1, 2, 0, 1, 0, 2, 0, 0, 1}, new int[]{1, 2, 0, 1, 0, 2, 0, 1, 0}, new int[]{1, 2, 0, 1, 0, 2, 0, 2, 2}, new int[]{1, 2, 0, 1, 1, 0, 0, 2, 0}, new int[]{1, 2, 0, 1, 1, 0, 2, 0, 0}, new int[]{1, 2, 0, 1, 1, 2, 0, 0, 0}, new int[]{1, 2, 0, 1, 2, 0, 0, 1, 0}, new int[]{1, 2, 0, 1, 2, 0, 2, 2, 0}, new int[]{1, 2, 0, 1, 2, 1, 0, 0, 0}, new int[]{1, 2, 0, 2, 0, 0, 0, 1, 1}, new int[]{1, 2, 0, 2, 0, 0, 1, 1, 0}, new int[]{1, 2, 0, 2, 0, 1, 0, 0, 1}, new int[]{1, 2, 0, 2, 0, 1, 0, 1, 0}, new int[]{1, 2, 0, 2, 0, 1, 0, 2, 2}, new int[]{1, 2, 0, 2, 0, 2, 0, 1, 2}, new int[]{1, 2, 0, 2, 0, 2, 0, 2, 1}, new int[]{1, 2, 0, 2, 1, 0, 0, 1, 0}, new int[]{1, 2, 0, 2, 1, 0, 1, 0, 0}, new int[]{1, 2, 0, 2, 1, 0, 2, 2, 0}, new int[]{1, 2, 0, 2, 1, 1, 0, 0, 0}, new int[]{1, 2, 0, 2, 2, 0, 1, 2, 0}, new int[]{1, 2, 0, 2, 2, 0, 2, 1, 0}, new int[]{1, 2, 1, 0, 0, 0, 0, 1, 2}, new int[]{1, 2, 1, 0, 0, 0, 0, 2, 1}, new int[]{1, 2, 1, 0, 0, 0, 1, 0, 2}, new int[]{1, 2, 1, 0, 0, 0, 1, 2, 0}, new int[]{1, 2, 1, 0, 0, 0, 2, 0, 1}, new int[]{1, 2, 1, 0, 0, 0, 2, 1, 0}, new int[]{1, 2, 1, 0, 0, 0, 2, 2, 2}, new int[]{1, 2, 1, 0, 1, 2, 0, 0, 0}, new int[]{1, 2, 1, 0, 2, 1, 0, 0, 0}, new int[]{1, 2, 1, 1, 0, 2, 0, 0, 0}, new int[]{1, 2, 1, 1, 2, 0, 0, 0, 0}, new int[]{1, 2, 1, 2, 0, 1, 0, 0, 0}, new int[]{1, 2, 1, 2, 1, 0, 0, 0, 0}, new int[]{1, 2, 1, 2, 2, 2, 0, 0, 0}, new int[]{1, 2, 2, 0, 0, 0, 0, 1, 1}, new int[]{1, 2, 2, 0, 0, 0, 1, 0, 1}, new int[]{1, 2, 2, 0, 0, 0, 1, 1, 0}, new int[]{1, 2, 2, 0, 0, 0, 1, 2, 2}, new int[]{1, 2, 2, 0, 0, 0, 2, 1, 2}, new int[]{1, 2, 2, 0, 0, 0, 2, 2, 1}, new int[]{1, 2, 2, 0, 1, 1, 0, 0, 0}, new int[]{1, 2, 2, 1, 0, 1, 0, 0, 0}, new int[]{1, 2, 2, 1, 1, 0, 0, 0, 0}, new int[]{1, 2, 2, 1, 2, 2, 0, 0, 0}, new int[]{1, 2, 2, 2, 1, 2, 0, 0, 0}, new int[]{1, 2, 2, 2, 2, 1, 0, 0, 0}, new int[]{2, 0, 0, 1, 0, 1, 0, 1, 2}, new int[]{2, 0, 0, 1, 0, 1, 0, 2, 1}, new int[]{2, 0, 0, 1, 0, 1, 1, 0, 2}, new int[]{2, 0, 0, 1, 0, 1, 2, 0, 1}, new int[]{2, 0, 0, 1, 0, 2, 0, 1, 1}, new int[]{2, 0, 0, 1, 0, 2, 1, 0, 1}, new int[]{2, 0, 0, 1, 1, 0, 1, 2, 0}, new int[]{2, 0, 0, 1, 1, 0, 2, 1, 0}, new int[]{2, 0, 0, 1, 2, 0, 1, 1, 0}, new int[]{2, 0, 0, 2, 0, 1, 0, 1, 1}, new int[]{2, 0, 0, 2, 0, 1, 1, 0, 1}, new int[]{2, 0, 0, 2, 1, 0, 1, 1, 0}, new int[]{2, 0, 1, 0, 0, 0, 1, 1, 2}, new int[]{2, 0, 1, 0, 0, 0, 1, 2, 1}, new int[]{2, 0, 1, 0, 0, 0, 2, 1, 1}, new int[]{2, 0, 1, 0, 0, 1, 1, 0, 2}, new int[]{2, 0, 1, 0, 0, 2, 1, 0, 1}, new int[]{2, 0, 1, 1, 0, 0, 1, 0, 2}, new int[]{2, 0, 1, 1, 0, 0, 2, 0, 1}, new int[]{2, 0, 1, 1, 0, 1, 0, 0, 2}, new int[]{2, 0, 1, 1, 0, 1, 2, 0, 0}, new int[]{2, 0, 1, 1, 0, 2, 0, 0, 1}, new int[]{2, 0, 1, 1, 0, 2, 1, 0, 0}, new int[]{2, 0, 1, 1, 0, 2, 2, 0, 2}, new int[]{2, 0, 1, 1, 1, 2, 0, 0, 0}, new int[]{2, 0, 1, 1, 2, 1, 0, 0, 0}, new int[]{2, 0, 1, 2, 0, 0, 1, 0, 1}, new int[]{2, 0, 1, 2, 0, 1, 1, 0, 0}, new int[]{2, 0, 1, 2, 0, 1, 2, 0, 2}, new int[]{2, 0, 1, 2, 0, 2, 1, 0, 2}, new int[]{2, 0, 1, 2, 0, 2, 2, 0, 1}, new int[]{2, 0, 1, 2, 1, 1, 0, 0, 0}, new int[]{2, 0, 2, 0, 0, 1, 1, 0, 1}, new int[]{2, 0, 2, 1, 0, 0, 1, 0, 1}, new int[]{2, 0, 2, 1, 0, 1, 0, 0, 1}, new int[]{2, 0, 2, 1, 0, 1, 1, 0, 0}, new int[]{2, 0, 2, 1, 0, 1, 2, 0, 2}, new int[]{2, 0, 2, 1, 0, 2, 1, 0, 2}, new int[]{2, 0, 2, 1, 0, 2, 2, 0, 1}, new int[]{2, 0, 2, 2, 0, 1, 1, 0, 2}, new int[]{2, 0, 2, 2, 0, 1, 2, 0, 1}, new int[]{2, 0, 2, 2, 0, 2, 1, 0, 1}, new int[]{2, 1, 0, 0, 0, 0, 1, 1, 2}, new int[]{2, 1, 0, 0, 0, 0, 1, 2, 1}, new int[]{2, 1, 0, 0, 0, 0, 2, 1, 1}, new int[]{2, 1, 0, 0, 0, 1, 0, 1, 2}, new int[]{2, 1, 0, 0, 0, 1, 0, 2, 1}, new int[]{2, 1, 0, 0, 0, 2, 0, 1, 1}, new int[]{2, 1, 0, 0, 1, 0, 1, 2, 0}, new int[]{2, 1, 0, 0, 2, 0, 1, 1, 0}, new int[]{2, 1, 0, 1, 0, 0, 0, 1, 2}, new int[]{2, 1, 0, 1, 0, 0, 0, 2, 1}, new int[]{2, 1, 0, 1, 0, 0, 1, 2, 0}, new int[]{2, 1, 0, 1, 0, 0, 2, 1, 0}, new int[]{2, 1, 0, 1, 0, 1, 0, 0, 2}, new int[]{2, 1, 0, 1, 0, 1, 0, 2, 0}, new int[]{2, 1, 0, 1, 0, 2, 0, 0, 1}, new int[]{2, 1, 0, 1, 0, 2, 0, 1, 0}, new int[]{2, 1, 0, 1, 0, 2, 0, 2, 2}, new int[]{2, 1, 0, 1, 1, 0, 0, 2, 0}, new int[]{2, 1, 0, 1, 1, 0, 2, 0, 0}, new int[]{2, 1, 0, 1, 1, 2, 0, 0, 0}, new int[]{2, 1, 0, 1, 2, 0, 0, 1, 0}, new int[]{2, 1, 0, 1, 2, 0, 1, 0, 0}, new int[]{2, 1, 0, 1, 2, 0, 2, 2, 0}, new int[]{2, 1, 0, 1, 2, 1, 0, 0, 0}, new int[]{2, 1, 0, 2, 0, 0, 0, 1, 1}, new int[]{2, 1, 0, 2, 0, 0, 1, 1, 0}, new int[]{2, 1, 0, 2, 0, 1, 0, 0, 1}, new int[]{2, 1, 0, 2, 0, 1, 0, 1, 0}, new int[]{2, 1, 0, 2, 0, 1, 0, 2, 2}, new int[]{2, 1, 0, 2, 0, 2, 0, 1, 2}, new int[]{2, 1, 0, 2, 0, 2, 0, 2, 1}, new int[]{2, 1, 0, 2, 1, 0, 1, 0, 0}, new int[]{2, 1, 0, 2, 1, 0, 2, 2, 0}, new int[]{2, 1, 0, 2, 1, 1, 0, 0, 0}, new int[]{2, 1, 0, 2, 2, 0, 1, 2, 0}, new int[]{2, 1, 0, 2, 2, 0, 2, 1, 0}, new int[]{2, 1, 1, 0, 0, 0, 0, 1, 2}, new int[]{2, 1, 1, 0, 0, 0, 0, 2, 1}, new int[]{2, 1, 1, 0, 0, 0, 1, 0, 2}, new int[]{2, 1, 1, 0, 0, 0, 1, 2, 0}, new int[]{2, 1, 1, 0, 0, 0, 2, 0, 1}, new int[]{2, 1, 1, 0, 0, 0, 2, 1, 0}, new int[]{2, 1, 1, 0, 0, 0, 2, 2, 2}, new int[]{2, 1, 1, 0, 1, 2, 0, 0, 0}, new int[]{2, 1, 1, 0, 2, 1, 0, 0, 0}, new int[]{2, 1, 1, 1, 0, 2, 0, 0, 0}, new int[]{2, 1, 1, 1, 2, 0, 0, 0, 0}, new int[]{2, 1, 1, 2, 0, 1, 0, 0, 0}, new int[]{2, 1, 1, 2, 1, 0, 0, 0, 0}, new int[]{2, 1, 1, 2, 2, 2, 0, 0, 0}, new int[]{2, 1, 2, 0, 0, 0, 0, 1, 1}, new int[]{2, 1, 2, 0, 0, 0, 1, 0, 1}, new int[]{2, 1, 2, 0, 0, 0, 1, 1, 0}, new int[]{2, 1, 2, 0, 0, 0, 1, 2, 2}, new int[]{2, 1, 2, 0, 0, 0, 2, 1, 2}, new int[]{2, 1, 2, 0, 0, 0, 2, 2, 1}, new int[]{2, 1, 2, 0, 1, 1, 0, 0, 0}, new int[]{2, 1, 2, 1, 0, 1, 0, 0, 0}, new int[]{2, 1, 2, 1, 1, 0, 0, 0, 0}, new int[]{2, 1, 2, 1, 2, 2, 0, 0, 0}, new int[]{2, 1, 2, 2, 1, 2, 0, 0, 0}, new int[]{2, 1, 2, 2, 2, 1, 0, 0, 0}, new int[]{2, 2, 0, 0, 0, 1, 0, 1, 1}, new int[]{2, 2, 0, 0, 1, 0, 1, 1, 0}, new int[]{2, 2, 0, 1, 0, 0, 0, 1, 1}, new int[]{2, 2, 0, 1, 0, 0, 1, 1, 0}, new int[]{2, 2, 0, 1, 0, 1, 0, 0, 1}, new int[]{2, 2, 0, 1, 0, 1, 0, 1, 0}, new int[]{2, 2, 0, 1, 0, 1, 0, 2, 2}, new int[]{2, 2, 0, 1, 0, 2, 0, 1, 2}, new int[]{2, 2, 0, 1, 0, 2, 0, 2, 1}, new int[]{2, 2, 0, 1, 1, 0, 0, 1, 0}, new int[]{2, 2, 0, 1, 1, 0, 1, 0, 0}, new int[]{2, 2, 0, 1, 1, 0, 2, 2, 0}, new int[]{2, 2, 0, 1, 2, 0, 1, 2, 0}, new int[]{2, 2, 0, 1, 2, 0, 2, 1, 0}, new int[]{2, 2, 0, 2, 0, 1, 0, 1, 2}, new int[]{2, 2, 0, 2, 0, 1, 0, 2, 1}, new int[]{2, 2, 0, 2, 0, 2, 0, 1, 1}, new int[]{2, 2, 0, 2, 1, 0, 1, 2, 0}, new int[]{2, 2, 0, 2, 1, 0, 2, 1, 0}, new int[]{2, 2, 0, 2, 2, 0, 1, 1, 0}, new int[]{2, 2, 1, 0, 0, 0, 0, 1, 1}, new int[]{2, 2, 1, 0, 0, 0, 1, 0, 1}, new int[]{2, 2, 1, 0, 0, 0, 1, 1, 0}, new int[]{2, 2, 1, 0, 0, 0, 1, 2, 2}, new int[]{2, 2, 1, 0, 0, 0, 2, 1, 2}, new int[]{2, 2, 1, 0, 0, 0, 2, 2, 1}, new int[]{2, 2, 1, 0, 1, 1, 0, 0, 0}, new int[]{2, 2, 1, 1, 0, 1, 0, 0, 0}, new int[]{2, 2, 1, 1, 1, 0, 0, 0, 0}, new int[]{2, 2, 1, 1, 2, 2, 0, 0, 0}, new int[]{2, 2, 1, 2, 1, 2, 0, 0, 0}, new int[]{2, 2, 1, 2, 2, 1, 0, 0, 0}, new int[]{2, 2, 2, 0, 0, 0, 1, 1, 2}, new int[]{2, 2, 2, 0, 0, 0, 1, 2, 1}, new int[]{2, 2, 2, 0, 0, 0, 2, 1, 1}, new int[]{2, 2, 2, 1, 1, 2, 0, 0, 0}, new int[]{2, 2, 2, 1, 2, 1, 0, 0, 0}, new int[]{2, 2, 2, 2, 1, 1, 0, 0, 0}, new int[]{0, 0, 1, 0, 0, 1, 1, 2, 1}, new int[]{0, 0, 1, 0, 0, 1, 2, 1, 1}, new int[]{0, 0, 1, 0, 0, 2, 1, 1, 1}, new int[]{0, 0, 1, 0, 1, 0, 1, 1, 2}, new int[]{0, 0, 1, 0, 1, 0, 1, 2, 1}, new int[]{0, 0, 1, 0, 1, 1, 1, 0, 2}, new int[]{0, 0, 1, 0, 1, 1, 1, 2, 0}, new int[]{0, 0, 1, 0, 1, 1, 2, 0, 1}, new int[]{0, 0, 1, 0, 1, 2, 1, 0, 1}, new int[]{0, 0, 1, 0, 1, 2, 1, 1, 0}, new int[]{0, 0, 1, 0, 1, 2, 1, 2, 2}, new int[]{0, 0, 1, 0, 2, 0, 1, 1, 1}, new int[]{0, 0, 1, 0, 2, 1, 1, 0, 1}, new int[]{0, 0, 1, 0, 2, 1, 2, 2, 1}, new int[]{0, 0, 1, 1, 0, 1, 0, 2, 1}, new int[]{0, 0, 1, 1, 1, 0, 1, 0, 2}, new int[]{0, 0, 1, 1, 1, 0, 1, 2, 0}, new int[]{0, 0, 1, 1, 1, 1, 0, 0, 2}, new int[]{0, 0, 1, 1, 1, 1, 0, 2, 0}, new int[]{0, 0, 1, 1, 1, 1, 2, 0, 0}, new int[]{0, 0, 1, 1, 1, 2, 1, 0, 0}, new int[]{0, 0, 1, 1, 2, 1, 0, 0, 1}, new int[]{0, 0, 1, 2, 0, 0, 1, 1, 1}, new int[]{0, 0, 1, 2, 0, 1, 0, 1, 1}, new int[]{0, 0, 1, 2, 0, 1, 2, 2, 1}, new int[]{0, 0, 1, 2, 1, 0, 1, 0, 1}, new int[]{0, 0, 1, 2, 1, 0, 1, 1, 0}, new int[]{0, 0, 1, 2, 1, 0, 1, 2, 2}, new int[]{0, 0, 1, 2, 1, 1, 0, 0, 1}, new int[]{0, 0, 1, 2, 1, 1, 1, 0, 0}, new int[]{0, 0, 1, 2, 1, 2, 1, 0, 2}, new int[]{0, 0, 1, 2, 1, 2, 1, 2, 0}, new int[]{0, 0, 1, 2, 2, 1, 0, 2, 1}, new int[]{0, 0, 1, 2, 2, 1, 2, 0, 1}, new int[]{0, 0, 2, 0, 0, 1, 1, 1, 1}, new int[]{0, 0, 2, 0, 1, 0, 1, 1, 1}, new int[]{0, 0, 2, 0, 2, 2, 1, 1, 1}, new int[]{0, 0, 2, 1, 0, 0, 1, 1, 1}, new int[]{0, 0, 2, 1, 1, 1, 0, 0, 1}, new int[]{0, 0, 2, 1, 1, 1, 0, 1, 0}, new int[]{0, 0, 2, 1, 1, 1, 0, 2, 2}, new int[]{0, 0, 2, 1, 1, 1, 1, 0, 0}, new int[]{0, 0, 2, 1, 1, 1, 2, 0, 2}, new int[]{0, 0, 2, 1, 1, 1, 2, 2, 0}, new int[]{0, 0, 2, 2, 0, 2, 1, 1, 1}, new int[]{0, 0, 2, 2, 2, 0, 1, 1, 1}, new int[]{0, 1, 0, 0, 0, 2, 1, 1, 1}, new int[]{0, 1, 0, 0, 1, 0, 1, 1, 2}, new int[]{0, 1, 0, 0, 1, 0, 2, 1, 1}, new int[]{0, 1, 0, 0, 1, 1, 2, 1, 0}, new int[]{0, 1, 0, 0, 1, 2, 1, 1, 0}, new int[]{0, 1, 0, 0, 1, 2, 2, 1, 2}, new int[]{0, 1, 0, 0, 2, 0, 1, 1, 1}, new int[]{0, 1, 0, 1, 1, 0, 0, 1, 2}, new int[]{0, 1, 0, 1, 1, 1, 0, 0, 2}, new int[]{0, 1, 0, 1, 1, 1, 0, 2, 0}, new int[]{0, 1, 0, 1, 1, 1, 2, 0, 0}, new int[]{0, 1, 0, 1, 1, 2, 0, 1, 0}, new int[]{0, 1, 0, 2, 0, 0, 1, 1, 1}, new int[]{0, 1, 0, 2, 1, 0, 0, 1, 1}, new int[]{0, 1, 0, 2, 1, 0, 2, 1, 2}, new int[]{0, 1, 0, 2, 1, 1, 0, 1, 0}, new int[]{0, 1, 0, 2, 1, 2, 0, 1, 2}, new int[]{0, 1, 0, 2, 1, 2, 2, 1, 0}, new int[]{0, 1, 1, 0, 0, 1, 2, 0, 1}, new int[]{0, 1, 1, 0, 1, 0, 1, 0, 2}, new int[]{0, 1, 1, 0, 1, 0, 1, 2, 0}, new int[]{0, 1, 1, 0, 1, 0, 2, 1, 0}, new int[]{0, 1, 1, 0, 1, 2, 1, 0, 0}, new int[]{0, 1, 1, 2, 0, 1, 0, 0, 1}, new int[]{0, 1, 1, 2, 1, 0, 0, 1, 0}, new int[]{0, 1, 1, 2, 1, 0, 1, 0, 0}, new int[]{0, 1, 2, 0, 1, 0, 1, 1, 0}, new int[]{0, 1, 2, 0, 1, 0, 2, 1, 2}, new int[]{0, 1, 2, 0, 1, 2, 2, 1, 0}, new int[]{0, 1, 2, 1, 1, 0, 0, 1, 0}, new int[]{0, 1, 2, 2, 1, 0, 0, 1, 2}, new int[]{0, 1, 2, 2, 1, 0, 2, 1, 0}, new int[]{0, 1, 2, 2, 1, 2, 0, 1, 0}, new int[]{0, 2, 0, 0, 0, 1, 1, 1, 1}, new int[]{0, 2, 0, 0, 1, 0, 1, 1, 1}, new int[]{0, 2, 0, 0, 2, 2, 1, 1, 1}, new int[]{0, 2, 0, 1, 0, 0, 1, 1, 1}, new int[]{0, 2, 0, 1, 1, 1, 0, 0, 1}, new int[]{0, 2, 0, 1, 1, 1, 0, 1, 0}, new int[]{0, 2, 0, 1, 1, 1, 0, 2, 2}, new int[]{0, 2, 0, 1, 1, 1, 1, 0, 0}, new int[]{0, 2, 0, 1, 1, 1, 2, 0, 2}, new int[]{0, 2, 0, 1, 1, 1, 2, 2, 0}, new int[]{0, 2, 0, 2, 0, 2, 1, 1, 1}, new int[]{0, 2, 0, 2, 2, 0, 1, 1, 1}, new int[]{0, 2, 1, 0, 0, 1, 1, 0, 1}, new int[]{0, 2, 1, 0, 0, 1, 2, 2, 1}, new int[]{0, 2, 1, 0, 1, 0, 1, 0, 1}, new int[]{0, 2, 1, 0, 1, 0, 1, 1, 0}, new int[]{0, 2, 1, 0, 1, 0, 1, 2, 2}, new int[]{0, 2, 1, 0, 1, 1, 1, 0, 0}, new int[]{0, 2, 1, 0, 1, 2, 1, 0, 2}, new int[]{0, 2, 1, 0, 1, 2, 1, 2, 0}, new int[]{0, 2, 1, 0, 2, 1, 2, 0, 1}, new int[]{0, 2, 1, 1, 0, 1, 0, 0, 1}, new int[]{0, 2, 1, 1, 1, 0, 1, 0, 0}, new int[]{0, 2, 1, 2, 0, 1, 0, 2, 1}, new int[]{0, 2, 1, 2, 0, 1, 2, 0, 1}, new int[]{0, 2, 1, 2, 1, 0, 1, 0, 2}, new int[]{0, 2, 1, 2, 1, 0, 1, 2, 0}, new int[]{0, 2, 1, 2, 1, 2, 1, 0, 0}, new int[]{0, 2, 1, 2, 2, 1, 0, 0, 1}, new int[]{0, 2, 2, 0, 0, 2, 1, 1, 1}, new int[]{0, 2, 2, 0, 2, 0, 1, 1, 1}, new int[]{0, 2, 2, 1, 1, 1, 0, 0, 2}, new int[]{0, 2, 2, 1, 1, 1, 0, 2, 0}, new int[]{0, 2, 2, 1, 1, 1, 2, 0, 0}, new int[]{0, 2, 2, 2, 0, 0, 1, 1, 1}, new int[]{1, 0, 0, 0, 0, 2, 1, 1, 1}, new int[]{1, 0, 0, 0, 1, 0, 1, 2, 1}, new int[]{1, 0, 0, 0, 1, 0, 2, 1, 1}, new int[]{1, 0, 0, 0, 1, 1, 0, 2, 1}, new int[]{1, 0, 0, 0, 1, 1, 2, 0, 1}, new int[]{1, 0, 0, 0, 1, 2, 0, 1, 1}, new int[]{1, 0, 0, 0, 1, 2, 1, 0, 1}, new int[]{1, 0, 0, 0, 1, 2, 2, 2, 1}, new int[]{1, 0, 0, 0, 2, 0, 1, 1, 1}, new int[]{1, 0, 0, 1, 0, 0, 1, 1, 2}, new int[]{1, 0, 0, 1, 0, 0, 1, 2, 1}, new int[]{1, 0, 0, 1, 0, 1, 1, 2, 0}, new int[]{1, 0, 0, 1, 0, 2, 1, 1, 0}, new int[]{1, 0, 0, 1, 0, 2, 1, 2, 2}, new int[]{1, 0, 0, 1, 1, 0, 0, 2, 1}, new int[]{1, 0, 0, 1, 1, 0, 1, 0, 2}, new int[]{1, 0, 0, 1, 1, 0, 2, 0, 1}, new int[]{1, 0, 0, 1, 1, 1, 0, 0, 2}, new int[]{1, 0, 0, 1, 1, 1, 0, 2, 0}, new int[]{1, 0, 0, 1, 1, 1, 2, 0, 0}, new int[]{1, 0, 0, 1, 1, 2, 0, 0, 1}, new int[]{1, 0, 0, 1, 1, 2, 1, 0, 0}, new int[]{1, 0, 0, 1, 2, 0, 1, 0, 1}, new int[]{1, 0, 0, 1, 2, 0, 1, 2, 2}, new int[]{1, 0, 0, 1, 2, 1, 1, 0, 0}, new int[]{1, 0, 0, 1, 2, 2, 1, 0, 2}, new int[]{1, 0, 0, 1, 2, 2, 1, 2, 0}, new int[]{1, 0, 0, 2, 0, 0, 1, 1, 1}, new int[]{1, 0, 0, 2, 1, 0, 0, 1, 1}, new int[]{1, 0, 0, 2, 1, 0, 1, 0, 1}, new int[]{1, 0, 0, 2, 1, 0, 2, 2, 1}, new int[]{1, 0, 0, 2, 1, 1, 0, 0, 1}, new int[]{1, 0, 0, 2, 1, 2, 0, 2, 1}, new int[]{1, 0, 0, 2, 1, 2, 2, 0, 1}, new int[]{1, 0, 1, 0, 0, 1, 0, 2, 1}, new int[]{1, 0, 1, 0, 1, 0, 0, 2, 1}, new int[]{1, 0, 1, 0, 1, 0, 1, 0, 2}, new int[]{1, 0, 1, 0, 1, 0, 1, 2, 0}, new int[]{1, 0, 1, 0, 1, 0, 2, 0, 1}, new int[]{1, 0, 1, 0, 1, 2, 0, 0, 1}, new int[]{1, 0, 1, 0, 1, 2, 1, 0, 0}, new int[]{1, 0, 1, 0, 2, 1, 0, 0, 1}, new int[]{1, 0, 1, 1, 0, 0, 1, 2, 0}, new int[]{1, 0, 1, 1, 2, 0, 1, 0, 0}, new int[]{1, 0, 1, 2, 1, 0, 0, 0, 1}, new int[]{1, 0, 1, 2, 1, 0, 1, 0, 0}, new int[]{1, 0, 2, 0, 1, 0, 0, 1, 1}, new int[]{1, 0, 2, 0, 1, 0, 1, 0, 1}, new int[]{1, 0, 2, 0, 1, 0, 2, 2, 1}, new int[]{1, 0, 2, 0, 1, 1, 0, 0, 1}, new int[]{1, 0, 2, 0, 1, 2, 0, 2, 1}, new int[]{1, 0, 2, 0, 1, 2, 2, 0, 1}, new int[]{1, 0, 2, 1, 0, 0, 1, 1, 0}, new int[]{1, 0, 2, 1, 0, 0, 1, 2, 2}, new int[]{1, 0, 2, 1, 0, 2, 1, 2, 0}, new int[]{1, 0, 2, 1, 1, 0, 0, 0, 1}, new int[]{1, 0, 2, 1, 1, 0, 1, 0, 0}, new int[]{1, 0, 2, 1, 2, 0, 1, 0, 2}, new int[]{1, 0, 2, 1, 2, 0, 1, 2, 0}, new int[]{1, 0, 2, 1, 2, 2, 1, 0, 0}, new int[]{1, 0, 2, 2, 1, 0, 0, 2, 1}, new int[]{1, 0, 2, 2, 1, 0, 2, 0, 1}, new int[]{1, 0, 2, 2, 1, 2, 0, 0, 1}, new int[]{1, 1, 0, 0, 1, 0, 0, 1, 2}, new int[]{1, 1, 0, 0, 1, 0, 0, 2, 1}, new int[]{1, 1, 0, 0, 1, 0, 2, 0, 1}, new int[]{1, 1, 0, 0, 1, 2, 0, 0, 1}, new int[]{1, 1, 0, 0, 1, 2, 0, 1, 0}, new int[]{1, 1, 0, 1, 0, 0, 1, 0, 2}, new int[]{1, 1, 0, 1, 0, 2, 1, 0, 0}, new int[]{1, 1, 0, 2, 1, 0, 0, 0, 1}, new int[]{1, 1, 1, 0, 0, 1, 0, 0, 2}, new int[]{1, 1, 1, 0, 0, 1, 0, 2, 0}, new int[]{1, 1, 1, 0, 0, 1, 2, 0, 0}, new int[]{1, 1, 1, 0, 0, 2, 0, 0, 1}, new int[]{1, 1, 1, 0, 0, 2, 0, 1, 0}, new int[]{1, 1, 1, 0, 0, 2, 0, 2, 2}, new int[]{1, 1, 1, 0, 0, 2, 1, 0, 0}, new int[]{1, 1, 1, 0, 0, 2, 2, 0, 2}, new int[]{1, 1, 1, 0, 0, 2, 2, 2, 0}, new int[]{1, 1, 1, 0, 1, 0, 0, 0, 2}, new int[]{1, 1, 1, 0, 1, 0, 0, 2, 0}, new int[]{1, 1, 1, 0, 1, 0, 2, 0, 0}, new int[]{1, 1, 1, 0, 2, 0, 0, 0, 1}, new int[]{1, 1, 1, 0, 2, 0, 0, 1, 0}, new int[]{1, 1, 1, 0, 2, 0, 0, 2, 2}, new int[]{1, 1, 1, 0, 2, 0, 1, 0, 0}, new int[]{1, 1, 1, 0, 2, 0, 2, 0, 2}, new int[]{1, 1, 1, 0, 2, 0, 2, 2, 0}, new int[]{1, 1, 1, 0, 2, 2, 0, 0, 2}, new int[]{1, 1, 1, 0, 2, 2, 0, 2, 0}, new int[]{1, 1, 1, 0, 2, 2, 2, 0, 0}, new int[]{1, 1, 1, 1, 0, 0, 0, 0, 2}, new int[]{1, 1, 1, 1, 0, 0, 0, 2, 0}, new int[]{1, 1, 1, 1, 0, 0, 2, 0, 0}, new int[]{1, 1, 1, 2, 0, 0, 0, 0, 1}, new int[]{1, 1, 1, 2, 0, 0, 0, 1, 0}, new int[]{1, 1, 1, 2, 0, 0, 0, 2, 2}, new int[]{1, 1, 1, 2, 0, 0, 1, 0, 0}, new int[]{1, 1, 1, 2, 0, 0, 2, 0, 2}, new int[]{1, 1, 1, 2, 0, 0, 2, 2, 0}, new int[]{1, 1, 1, 2, 0, 2, 0, 0, 2}, new int[]{1, 1, 1, 2, 0, 2, 0, 2, 0}, new int[]{1, 1, 1, 2, 0, 2, 2, 0, 0}, new int[]{1, 1, 1, 2, 2, 0, 0, 0, 2}, new int[]{1, 1, 1, 2, 2, 0, 0, 2, 0}, new int[]{1, 1, 1, 2, 2, 0, 2, 0, 0}, new int[]{1, 1, 2, 0, 1, 0, 0, 0, 1}, new int[]{1, 1, 2, 0, 1, 0, 0, 1, 0}, new int[]{1, 1, 2, 1, 0, 0, 1, 0, 0}, new int[]{1, 2, 0, 0, 1, 0, 0, 1, 1}, new int[]{1, 2, 0, 0, 1, 0, 1, 0, 1}, new int[]{1, 2, 0, 0, 1, 0, 2, 2, 1}, new int[]{1, 2, 0, 0, 1, 1, 0, 0, 1}, new int[]{1, 2, 0, 0, 1, 2, 0, 2, 1}, new int[]{1, 2, 0, 0, 1, 2, 2, 0, 1}, new int[]{1, 2, 0, 1, 0, 0, 1, 0, 1}, new int[]{1, 2, 0, 1, 0, 0, 1, 2, 2}, new int[]{1, 2, 0, 1, 0, 1, 1, 0, 0}, new int[]{1, 2, 0, 1, 0, 2, 1, 0, 2}, new int[]{1, 2, 0, 1, 0, 2, 1, 2, 0}, new int[]{1, 2, 0, 1, 1, 0, 0, 0, 1}, new int[]{1, 2, 0, 1, 2, 0, 1, 0, 2}, new int[]{1, 2, 0, 1, 2, 2, 1, 0, 0}, new int[]{1, 2, 0, 2, 1, 0, 0, 2, 1}, new int[]{1, 2, 0, 2, 1, 0, 2, 0, 1}, new int[]{1, 2, 0, 2, 1, 2, 0, 0, 1}, new int[]{1, 2, 1, 0, 0, 1, 0, 0, 1}, new int[]{1, 2, 1, 0, 1, 0, 0, 0, 1}, new int[]{1, 2, 1, 0, 1, 0, 1, 0, 0}, new int[]{1, 2, 1, 1, 0, 0, 1, 0, 0}, new int[]{1, 2, 2, 0, 1, 0, 0, 2, 1}, new int[]{1, 2, 2, 0, 1, 0, 2, 0, 1}, new int[]{1, 2, 2, 0, 1, 2, 0, 0, 1}, new int[]{1, 2, 2, 1, 0, 0, 1, 0, 2}, new int[]{1, 2, 2, 1, 0, 0, 1, 2, 0}, new int[]{1, 2, 2, 1, 0, 2, 1, 0, 0}, new int[]{1, 2, 2, 1, 2, 0, 1, 0, 0}, new int[]{1, 2, 2, 2, 1, 0, 0, 0, 1}, new int[]{2, 0, 0, 0, 0, 1, 1, 1, 1}, new int[]{2, 0, 0, 0, 1, 0, 1, 1, 1}, new int[]{2, 0, 0, 0, 2, 2, 1, 1, 1}, new int[]{2, 0, 0, 1, 0, 0, 1, 1, 1}, new int[]{2, 0, 0, 1, 1, 1, 0, 0, 1}, new int[]{2, 0, 0, 1, 1, 1, 0, 1, 0}, new int[]{2, 0, 0, 1, 1, 1, 0, 2, 2}, new int[]{2, 0, 0, 1, 1, 1, 1, 0, 0}, new int[]{2, 0, 0, 1, 1, 1, 2, 0, 2}, new int[]{2, 0, 0, 1, 1, 1, 2, 2, 0}, new int[]{2, 0, 0, 2, 0, 2, 1, 1, 1}, new int[]{2, 0, 0, 2, 2, 0, 1, 1, 1}, new int[]{2, 0, 1, 0, 0, 1, 0, 1, 1}, new int[]{2, 0, 1, 0, 0, 1, 2, 2, 1}, new int[]{2, 0, 1, 0, 1, 0, 1, 0, 1}, new int[]{2, 0, 1, 0, 1, 0, 1, 1, 0}, new int[]{2, 0, 1, 0, 1, 0, 1, 2, 2}, new int[]{2, 0, 1, 0, 1, 1, 0, 0, 1}, new int[]{2, 0, 1, 0, 1, 1, 1, 0, 0}, new int[]{2, 0, 1, 0, 1, 2, 1, 0, 2}, new int[]{2, 0, 1, 0, 1, 2, 1, 2, 0}, new int[]{2, 0, 1, 0, 2, 1, 0, 2, 1}, new int[]{2, 0, 1, 0, 2, 1, 2, 0, 1}, new int[]{2, 0, 1, 1, 1, 0, 1, 0, 0}, new int[]{2, 0, 1, 2, 0, 1, 0, 2, 1}, new int[]{2, 0, 1, 2, 1, 0, 1, 0, 2}, new int[]{2, 0, 1, 2, 1, 0, 1, 2, 0}, new int[]{2, 0, 1, 2, 1, 2, 1, 0, 0}, new int[]{2, 0, 1, 2, 2, 1, 0, 0, 1}, new int[]{2, 0, 2, 0, 0, 2, 1, 1, 1}, new int[]{2, 0, 2, 0, 2, 0, 1, 1, 1}, new int[]{2, 0, 2, 1, 1, 1, 0, 0, 2}, new int[]{2, 0, 2, 1, 1, 1, 0, 2, 0}, new int[]{2, 0, 2, 1, 1, 1, 2, 0, 0}, new int[]{2, 0, 2, 2, 0, 0, 1, 1, 1}, new int[]{2, 1, 0, 0, 1, 0, 0, 1, 1}, new int[]{2, 1, 0, 0, 1, 0, 2, 1, 2}, new int[]{2, 1, 0, 0, 1, 1, 0, 1, 0}, new int[]{2, 1, 0, 0, 1, 2, 0, 1, 2}, new int[]{2, 1, 0, 0, 1, 2, 2, 1, 0}, new int[]{2, 1, 0, 2, 1, 0, 0, 1, 2}, new int[]{2, 1, 0, 2, 1, 2, 0, 1, 0}, new int[]{2, 1, 1, 0, 0, 1, 0, 0, 1}, new int[]{2, 1, 1, 0, 1, 0, 0, 1, 0}, new int[]{2, 1, 1, 0, 1, 0, 1, 0, 0}, new int[]{2, 1, 2, 0, 1, 0, 0, 1, 2}, new int[]{2, 1, 2, 0, 1, 0, 2, 1, 0}, new int[]{2, 1, 2, 0, 1, 2, 0, 1, 0}, new int[]{2, 1, 2, 2, 1, 0, 0, 1, 0}, new int[]{2, 2, 0, 0, 0, 2, 1, 1, 1}, new int[]{2, 2, 0, 0, 2, 0, 1, 1, 1}, new int[]{2, 2, 0, 1, 1, 1, 0, 0, 2}, new int[]{2, 2, 0, 1, 1, 1, 0, 2, 0}, new int[]{2, 2, 0, 1, 1, 1, 2, 0, 0}, new int[]{2, 2, 0, 2, 0, 0, 1, 1, 1}, new int[]{2, 2, 1, 0, 0, 1, 0, 2, 1}, new int[]{2, 2, 1, 0, 0, 1, 2, 0, 1}, new int[]{2, 2, 1, 0, 1, 0, 1, 0, 2}, new int[]{2, 2, 1, 0, 1, 0, 1, 2, 0}, new int[]{2, 2, 1, 0, 1, 2, 1, 0, 0}, new int[]{2, 2, 1, 0, 2, 1, 0, 0, 1}, new int[]{2, 2, 1, 2, 0, 1, 0, 0, 1}, new int[]{2, 2, 1, 2, 1, 0, 1, 0, 0}, new int[]{0, 0, 1, 1, 0, 0, 0, 1, 1}, new int[]{0, 0, 1, 1, 1, 0, 0, 0, 1}, new int[]{0, 0, 1, 1, 1, 0, 0, 1, 0}, new int[]{0, 1, 0, 0, 0, 1, 1, 0, 1}, new int[]{0, 1, 0, 0, 1, 0, 1, 0, 1}, new int[]{0, 1, 0, 0, 1, 1, 1, 0, 0}, new int[]{0, 1, 0, 1, 0, 0, 1, 0, 1}, new int[]{0, 1, 0, 1, 1, 0, 0, 0, 1}, new int[]{0, 1, 1, 1, 0, 0, 0, 0, 1}, new int[]{1, 0, 0, 0, 0, 1, 1, 1, 0}, new int[]{1, 0, 0, 0, 1, 1, 0, 1, 0}, new int[]{1, 0, 0, 0, 1, 1, 1, 0, 0}, new int[]{1, 0, 1, 0, 0, 1, 0, 1, 0}, new int[]{1, 0, 1, 0, 1, 0, 0, 1, 0}, new int[]{1, 0, 1, 1, 0, 0, 0, 1, 0}, new int[]{1, 1, 0, 0, 0, 1, 1, 0, 0}}; private static double[] weights = new double[]{-0.00000000000000063401, 0.00000000000000055700, 0.00000000000000012769, -0.52573653474162341000, 0.43427498705107342000, 0.09146154769055023200, 0.00000000000000138130, -0.00000000000000118053, -0.00000000000000050631, 0.52573653474162607000, -0.43427498705107603000, -0.09146154769055094000, -0.00000000000000057743, 0.00000000000000037314, -0.00000000000000023441, 0.52573653474162907000, -0.43427498705107787000, -0.09146154769055155100, -0.00000000000000405476, 0.00000000000000339568, 0.00000000000000053496, -0.52573653474162763000, 0.43427498705107587000, 0.09146154769055155100, -0.00000000000000116499, 0.00000000000000111960, 0.00000000000000004464, 0.59181480684449950000, -0.48617039139374285000, -0.10564441545075645000, 0.33659693927260309000, -0.28023189914604213000, -0.05636504012656110000, -0.00000000000000339401, 0.00000000000000312093, 0.00000000000000057542, 0.33659693927260292000, -0.28023189914604213000, -0.05636504012656087800, 0.00000000000000099480, -0.00000000000000067295, -0.00000000000000003901, -0.33659693927260537000, 0.28023189914604435000, 0.05636504012656118300, -0.00000000000000284785, 0.00000000000000269180, 0.00000000000000026089, -0.33659693927260426000, 0.28023189914604330000, 0.05636504012656121800, -0.59181480684449039000, 0.48617039139373414000, 0.10564441545075609000, 0.00000000000000098567, -0.00000000000000095474, -0.00000000000000021207, -0.33659693927260698000, 0.28023189914604579000, 0.05636504012656142600, -0.59181480684449372000, 0.48617039139373774000, 0.10564441545075645000, 0.33659693927260514000, -0.28023189914604435000, -0.05636504012656100300, -0.00000000000000010012, 0.00000000000000001702, 0.00000000000000012437, -0.33659693927260204000, 0.28023189914604152000, 0.05636504012656010100, 0.59181480684449428000, -0.48617039139373813000, -0.10564441545075638000, 0.33659693927260081000, -0.28023189914603991000, -0.05636504012656074600, 0.00000000000000216976, -0.00000000000000195478, -0.00000000000000023527, 0.39961448116107012000, -0.35734834346184241000, -0.04226613769922773400, -0.33634249144114892000, 0.28239332896420155000, 0.05394916247694748300, 0.39961448116106396000, -0.35734834346183769000, -0.04226613769922723400, -0.33634249144114703000, 0.28239332896420027000, 0.05394916247694724100, -0.21667948075941171000, 0.12935693076722185000, 0.08732254999219028800, -0.33634249144114398000, 0.28239332896419722000, 0.05394916247694688700, 0.39961448116106157000, -0.35734834346183453000, -0.04226613769922710200, -0.33634249144114919000, 0.28239332896420105000, 0.05394916247694810100, 0.39961448116107307000, -0.35734834346184485000, -0.04226613769922824700, -0.54188833749531484000, 0.49456532031183192000, 0.04732301718348254400, 0.00000000000000042643, -0.00000000000000052416, -0.00000000000000028161, 0.54188833749532672000, -0.49456532031184147000, -0.04732301718348516700, 0.00000000000000208148, -0.00000000000000170526, -0.00000000000000039120, -0.00000000000001165642, 0.00000000000000998830, 0.00000000000000133016, -0.00000000000000389738, 0.00000000000000286692, 0.00000000000000081238, 0.54188833749532805000, -0.49456532031184208000, -0.04732301718348581200, -0.00000000000000308117, 0.00000000000000212213, 0.00000000000000117840, -0.54188833749532439000, 0.49456532031183975000, 0.04732301718348420900, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.20000000000000001000, 0.33333333333333331000, 0.33333333333333331000, 0.33333333333333331000, 0.00000000000000093850, -0.00000000000000054323, -0.00000000000000011761, -0.03290466729806285100, 0.00000000000000063771, 0.00000000000000000000, 0.00000000000000000000, 0.00000000000000000000, 0.00000000000000000000}; // ********************************************************************** // MAIN // ********************************************************************** public static void Main(System.String[] args) { double[,] xData; // Input Attributes for Trainer int[] yData; // Output Attributes for Trainer int i, j; // array indicies int[,] z; // ********************************************************************** // PREPROCESS TRAINING PATTERNS // ********************************************************************** long t0 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; xData = new double[nObs,nInputs]; yData = new int[nObs]; /* Perform Binary Filtering. */ for (i = 0; i < data.Length; i++) { for (j = 0; j < data[0].Length; j++) { data[i][j]++; } } int[] xx = new int[nObs]; UnsupervisedNominalFilter filter = new UnsupervisedNominalFilter(3); for (i = 0; i < 9; i++) { // Copy each variable to a temp var for (j = 0; j < nObs; j++) { xx[j] = data[j][i]; } // Perform binary filter on temp var z = filter.Encode(xx); // Copy binary encoded var to xData for (j = 0; j < nObs; j++) { for (int k = 0; k < 3; k++) { xData[j,k + (i * 3)] = (double) z[j,k]; } } } for (i = 0; i < nObs; i++) { yData[i] = (i >= 626?0:1); } // ********************************************************************** // CREATE FEEDFORWARD NETWORK // ********************************************************************** FeedForwardNetwork network = new FeedForwardNetwork(); network.InputLayer.CreateInputs(nInputs); network.CreateHiddenLayer().CreatePerceptrons(nPerceptrons1); network.CreateHiddenLayer().CreatePerceptrons(nPerceptrons2); network.OutputLayer.CreatePerceptrons(nOutputs); network.LinkAll(); network.Weights = weights; Perceptron[] perceptrons = network.Perceptrons; for (i = 0; i < perceptrons.Length - 1; i++) { perceptrons[i].Activation = hiddenLayerActivation; } // ********************************************************************** // SET OUTPUT LAYER ACTIVATION FUNCTION TO LOGISTIC FOR BINARY CLASSIFICATION // ********************************************************************** perceptrons[perceptrons.Length - 1].Activation = outputLayerActivation; BinaryClassification classification = new BinaryClassification(network); QuasiNewtonTrainer stageITrainer = new QuasiNewtonTrainer(); QuasiNewtonTrainer stageIITrainer = new QuasiNewtonTrainer(); stageITrainer.SetError(classification.Error); stageIITrainer.SetError(classification.Error); stageITrainer.MaximumTrainingIterations = 8000; stageITrainer.MaximumStepsize = 10.0; stageIITrainer.MaximumStepsize = 10.0; stageIITrainer.MaximumTrainingIterations = 8000; EpochTrainer trainer = new EpochTrainer(stageITrainer, stageIITrainer); // Set Training Parameters trainer.NumberOfEpochs = 20; trainer.EpochSize = nObs; // Set random number seeds to produce repeatable output trainer.Random = new Random(5555); trainer.SetRandomSamples(new Random(5555), new Random(5555)); classification.Train(trainer, xData, yData); System.Console.Out.WriteLine("trainer.getErrorValue = " + trainer.ErrorValue); System.Console.Out.WriteLine("StageITrainer.getErrorValue = " + stageITrainer.ErrorValue); System.Console.Out.WriteLine("StageIITrainer.getErrorValue = " + stageIITrainer.ErrorValue); // ********************************************************************** // DISPLAY TRAINING STATISTICS // ********************************************************************** double[] stats = classification.ComputeStatistics(xData, yData); System.Console.Out.WriteLine( "***********************************************"); System.Console.Out.WriteLine("--> Cross-entropy error: " + (float)stats[0]); System.Console.Out.WriteLine("--> Classification error rate: " + (float)stats[1]); System.Console.Out.WriteLine( "***********************************************"); System.Console.Out.WriteLine(""); // ********************************************************************** // OBTAIN AND DISPLAY NETWORK WEIGHTS AND GRADIENTS // ********************************************************************** double[] weight = network.Weights; double[] gradient = trainer.ErrorGradient; double[][] wg = new double[weight.Length][]; for (int i3 = 0; i3 < weight.Length; i3++) { wg[i3] = new double[2]; } for (i = 0; i < weight.Length; i++) { wg[i][0] = weight[i]; wg[i][1] = gradient[i]; } PrintMatrixFormat pmf = new PrintMatrixFormat(); pmf.SetColumnLabels(new System.String[]{"Weights", "Gradients"}); new PrintMatrix().Print(pmf, wg); // ********************************************************************** // forecast the network // ********************************************************************** double[][] report = new double[nObs][]; for (int i4 = 0; i4 < nObs; i4++) { report[i4] = new double[2]; } for (i = 0; i < 50; i++) { report[i][0] = yData[i]; double[] tmp = new double[xData.GetLength(1)]; for (j=0; j<xData.GetLength(1); j++) tmp[j] = xData[i,j]; report[i][1] = classification.PredictedClass(tmp); } pmf = new PrintMatrixFormat(); pmf.SetColumnLabels( new System.String[]{"Expected", "Predicted"}); new PrintMatrix("Forecast").Print(pmf, report); long t1 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; double time = t1 - t0; //Math.max(small, (double)(t1-t0)/(double)iters); time = time / 1000; System.Console.Out.WriteLine("****************Time: " + time); System.Console.Out.WriteLine("trainer.getErrorValue = " + trainer.ErrorValue); System.Console.Out.WriteLine("StageITrainer.getErrorValue = " + stageITrainer.ErrorValue); System.Console.Out.WriteLine("StageIITrainer.getErrorValue = " + stageIITrainer.ErrorValue); } }
trainer.getErrorValue = 1.38629447264277 StageITrainer.getErrorValue = 341.896192465936 StageIITrainer.getErrorValue = 1.38629447264277 *********************************************** --> Cross-entropy error: 1.386294 --> Classification error rate: 0.002087683 *********************************************** Weights Gradients 0 -26.6097976573308 -1.76013093157232E-07 1 79.2470900942513 -3.9259607432252E-09 2 -33.5433683376609 -9.95507902332743E-09 3 2.21041535535485 6.47606304741283E-12 4 15.9227299370867 -7.92672053349369E-08 5 32.2932177476722 2.16769316126848E-07 6 -110.229528537971 1.60009076640888E-09 7 43.0115071508866 -9.56560614455885E-08 8 -6.72341801061297 -1.99042706374008E-08 9 3.82202932248916 -3.44338957093567E-09 10 -1.52763776833912 -4.67416809899007E-34 11 19.096318145894 1.06581268595036E-37 12 -6.20159756258499 -3.75471657439398E-37 13 2.30629260428251 1.77102057507573E-37 14 -26.3461568303238 -1.45338905465151E-42 15 -27.912063156244 -3.23151405837895E-08 16 36.3210304224857 1.55178803567368E-09 17 -40.5700810470139 -1.00405026567488E-08 18 5.94185679788313 -2.10634338816164E-08 19 12.8231358563635 -8.13118613514597E-08 20 32.2113802373171 7.3071363553406E-08 21 -60.2258886605208 -3.87765801249E-09 22 42.8334049469 -9.55706378121672E-08 23 0.253218038120759 1.16563930726296E-09 24 -10.4192312451491 -1.39873355441285E-09 25 1.10132050954968 3.30048882191631E-27 26 12.199990492126 1.00794238510197E-27 27 3.15699338840009 -1.27487754292101E-36 28 -7.20259442259759 -4.97300892576816E-27 29 -9.99851831420775 2.66695912315823E-29 30 -26.3385484724221 1.52366554789366E-07 31 65.1653516520099 -2.59304404823118E-09 32 -40.2337421647594 -9.28867802769452E-08 33 12.7546549371301 1.16549218783095E-09 34 -36.9912885381589 -3.44339063945978E-09 35 31.8719580928069 -1.11610331819749E-07 36 -75.4669369173807 2.67174071414864E-10 37 38.3417469286413 -1.27243601919707E-08 38 -17.2123954014748 -2.10632867621844E-08 39 18.4014308721567 -7.92672042664128E-08 40 -1.43098018584262 -3.80193732612446E-34 41 -0.265020137782834 8.49527031810026E-29 42 6.4678253527918 -2.4129919645073E-38 43 4.0087366295492 -4.97308613230902E-27 44 10.4385823414027 3.27914964551473E-30 45 -28.1024762680355 -4.21249368544629E-07 46 62.8100726278876 -2.27685589155942E-09 47 -23.9829618085034 -9.56658507793321E-08 48 -18.4761944978989 -1.98977918245327E-08 49 30.645136501639 -1.39871670591387E-09 50 32.4353708210909 4.62005591514245E-07 51 -70.1218158127842 -4.90140852568933E-11 52 36.1916462883953 -9.94528968958386E-09 53 1.03638734536457 -2.74982069124107E-15 54 -13.5594811206575 -8.13118781999587E-08 55 0.18700276514072 -7.06279899438387E-43 56 -3.77324466133111 7.25858300892723E-38 57 -8.383749634121 -1.73858570142904E-36 58 17.5982428451326 7.54095767597564E-37 59 -24.6173879312637 -1.37785999442333E-40 60 -20.258351942152 2.8862622792285E-07 61 56.7905424920708 2.6635105374416E-10 62 -53.7883610055096 -9.5570637836146E-08 63 27.9844966690905 -1.98977923264668E-08 64 -54.4900399816996 2.04467393347846E-09 65 37.0571465811016 -2.47870004953234E-07 66 -73.9187059285026 -2.59222103056048E-09 67 57.7528833255766 -1.00405026327699E-08 68 -19.1914450829349 -2.24788663240107E-15 69 34.4658886111249 -8.4755268839351E-08 70 -13.1090289774173 1.76210736423409E-24 71 5.49900711796567 1.00424771675945E-27 72 1.70369231662346 -5.32757842089505E-23 73 -9.09289929443768 -3.52040697402979E-26 74 12.2953916658469 2.3390441586071E-29 75 -27.4818129360831 4.43281192065308E-07 76 48.1316658031404 -4.98371251655421E-11 77 -34.0761614176618 -7.63854604777945E-09 78 -10.6698732282012 3.71928374478061E-10 79 -20.7852963033874 -8.13118787175936E-08 80 32.5577122725433 -4.02524969095691E-07 81 -61.1887835024785 -2.27603285165078E-09 82 34.8170651512053 -9.79725944211365E-08 83 6.63722445362796 -2.02697229488315E-08 84 16.5220845779096 -1.39871618827893E-09 85 -0.160895088640468 3.30048890011806E-27 86 1.85827799132845 1.0935461721458E-27 87 3.78269514701215 -2.03606355425952E-37 88 2.97974747746492 -7.72068070714235E-32 89 -3.60575967549916 2.45076692281205E-27 90 -27.6593797606404 4.15232805139475E-07 91 72.3342855580823 -2.32585476757858E-09 92 -24.7298826022964 -7.56358115079602E-09 93 5.24227794358502 -2.06913578857583E-08 94 -16.9304351865014 -8.47552677708944E-08 95 30.7407379285903 -3.74476582169859E-07 96 -71.9479456279238 -1.52092377331025E-14 97 45.8003226113044 -9.80475593181199E-08 98 -24.6378777857398 7.93563311404888E-10 99 6.23728601645476 2.0446728650218E-09 100 0.533861406588414 8.69622769614886E-35 101 -11.5890280314343 1.39685762306099E-28 102 -16.1548714189138 -6.28455381082345E-34 103 18.9583573897183 -1.28719086134143E-25 104 3.56568118146885 3.65618430530922E-34 105 -28.465938502988 7.00620144653407E-08 106 21.3448850345718 -3.87683496658173E-09 107 -19.30027174882 -9.79620254277453E-08 108 -2.77292404194946 7.87230245936389E-10 109 1.83277246414745 -1.39873355441285E-09 110 32.3382786494488 -2.93057914957237E-08 111 -49.5952082003002 1.55096498976541E-09 112 29.9349835508889 -7.64911504117054E-09 113 -5.47912940998204 -2.06850248202898E-08 114 -5.64894665504052 -8.13118613514597E-08 115 0.260715006887127 1.75880687601373E-24 116 16.6667759427184 3.69466844883976E-30 117 -7.04065602320258 -5.32757842089507E-23 118 7.02117525437252 -4.01770786660928E-26 119 -3.11151101069225 3.27914964537858E-30 120 -28.4825481958908 -5.36210077248606E-07 121 71.1272184809125 1.60089856884223E-09 122 -32.4116685301335 -1.10772699145759E-07 123 -1.70847780496737 -2.02697238246857E-08 124 -16.2557204309972 -8.27105943881702E-08 125 30.3385841713894 5.76966300218224E-07 126 -87.9377967090049 -3.92676854565855E-09 127 50.246529583999 5.16155867684338E-09 128 -10.096654805183 3.71929250332289E-10 129 10.2633449323559 -5.17702391593651E-16 130 1.96938482868274 1.75880687595947E-24 131 5.34996503177684 1.59734938184303E-37 132 -14.713205212991 -5.32757842089508E-23 133 11.716720259857 -3.52040697399322E-26 134 -2.0119500580206 2.76081718492693E-42 135 -165.787101153353 -3.25241613346471E-08 136 -153.126623517672 -2.18413261959866E-09 137 -21.4407461371651 2.56421775779744E-09 138 19.5580189313542 -1.05973313874125E-08 139 44.9089494067269 -7.19785691192466E-09 140 -49.083352621682 4.30604139136833E-09 141 -18.9381369969533 1.76292638468803E-09 142 -83.3719106138484 7.19716170610117E-09 143 137.944766899566 4.36581809057208E-09 144 39.0313514342063 -4.51667695917841E-08 145 75.599341597783 -3.06933546775251E-11 146 195.169995384174 -1.23667681444798E-10 147 -83.0199447688769 1.86542026484299E-08 148 25.8184987265264 -1.62741417975303E-10 149 -97.6355018936802 4.35877811974283E-09 150 160.889205710213 -2.45893958744307E-09 151 84.4502033182748 -3.00133311935682E-09 152 -112.732145115534 -3.33652618216474E-10 153 4.22767450727702 4.07562229696174E-08 154 -10.8342582573892 -2.32586997681632E-09 155 4.39655805882639 -1.05611140468916E-07 156 -0.553850439419576 -1.98977945743534E-08 157 -8.20433040373114 -8.27105949058726E-08 158 114.83608474643 -2.48317911575925E-08 159 128.51819165101 -2.63457735094495E-09 160 13.7239100272455 -1.99531479597656E-09 161 -48.157060604333 -4.11525980456149E-09 Forecast Expected Predicted 0 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 8 1 1 9 1 1 10 1 1 11 1 1 12 1 1 13 1 1 14 1 1 15 1 1 16 1 1 17 1 1 18 1 1 19 1 1 20 1 1 21 1 1 22 1 1 23 1 1 24 1 1 25 1 1 26 1 1 27 1 1 28 1 1 29 1 1 30 1 1 31 1 1 32 1 1 33 1 1 34 1 1 35 1 1 36 1 1 37 1 1 38 1 1 39 1 1 40 1 1 41 1 1 42 1 1 43 1 1 44 1 1 45 1 1 46 1 1 47 1 1 48 1 1 49 1 1 50 0 0 51 0 0 52 0 0 53 0 0 54 0 0 55 0 0 56 0 0 57 0 0 58 0 0 59 0 0 60 0 0 61 0 0 62 0 0 63 0 0 64 0 0 65 0 0 66 0 0 67 0 0 68 0 0 69 0 0 70 0 0 71 0 0 72 0 0 73 0 0 74 0 0 75 0 0 76 0 0 77 0 0 78 0 0 79 0 0 80 0 0 81 0 0 82 0 0 83 0 0 84 0 0 85 0 0 86 0 0 87 0 0 88 0 0 89 0 0 90 0 0 91 0 0 92 0 0 93 0 0 94 0 0 95 0 0 96 0 0 97 0 0 98 0 0 99 0 0 100 0 0 101 0 0 102 0 0 103 0 0 104 0 0 105 0 0 106 0 0 107 0 0 108 0 0 109 0 0 110 0 0 111 0 0 112 0 0 113 0 0 114 0 0 115 0 0 116 0 0 117 0 0 118 0 0 119 0 0 120 0 0 121 0 0 122 0 0 123 0 0 124 0 0 125 0 0 126 0 0 127 0 0 128 0 0 129 0 0 130 0 0 131 0 0 132 0 0 133 0 0 134 0 0 135 0 0 136 0 0 137 0 0 138 0 0 139 0 0 140 0 0 141 0 0 142 0 0 143 0 0 144 0 0 145 0 0 146 0 0 147 0 0 148 0 0 149 0 0 150 0 0 151 0 0 152 0 0 153 0 0 154 0 0 155 0 0 156 0 0 157 0 0 158 0 0 159 0 0 160 0 0 161 0 0 162 0 0 163 0 0 164 0 0 165 0 0 166 0 0 167 0 0 168 0 0 169 0 0 170 0 0 171 0 0 172 0 0 173 0 0 174 0 0 175 0 0 176 0 0 177 0 0 178 0 0 179 0 0 180 0 0 181 0 0 182 0 0 183 0 0 184 0 0 185 0 0 186 0 0 187 0 0 188 0 0 189 0 0 190 0 0 191 0 0 192 0 0 193 0 0 194 0 0 195 0 0 196 0 0 197 0 0 198 0 0 199 0 0 200 0 0 201 0 0 202 0 0 203 0 0 204 0 0 205 0 0 206 0 0 207 0 0 208 0 0 209 0 0 210 0 0 211 0 0 212 0 0 213 0 0 214 0 0 215 0 0 216 0 0 217 0 0 218 0 0 219 0 0 220 0 0 221 0 0 222 0 0 223 0 0 224 0 0 225 0 0 226 0 0 227 0 0 228 0 0 229 0 0 230 0 0 231 0 0 232 0 0 233 0 0 234 0 0 235 0 0 236 0 0 237 0 0 238 0 0 239 0 0 240 0 0 241 0 0 242 0 0 243 0 0 244 0 0 245 0 0 246 0 0 247 0 0 248 0 0 249 0 0 250 0 0 251 0 0 252 0 0 253 0 0 254 0 0 255 0 0 256 0 0 257 0 0 258 0 0 259 0 0 260 0 0 261 0 0 262 0 0 263 0 0 264 0 0 265 0 0 266 0 0 267 0 0 268 0 0 269 0 0 270 0 0 271 0 0 272 0 0 273 0 0 274 0 0 275 0 0 276 0 0 277 0 0 278 0 0 279 0 0 280 0 0 281 0 0 282 0 0 283 0 0 284 0 0 285 0 0 286 0 0 287 0 0 288 0 0 289 0 0 290 0 0 291 0 0 292 0 0 293 0 0 294 0 0 295 0 0 296 0 0 297 0 0 298 0 0 299 0 0 300 0 0 301 0 0 302 0 0 303 0 0 304 0 0 305 0 0 306 0 0 307 0 0 308 0 0 309 0 0 310 0 0 311 0 0 312 0 0 313 0 0 314 0 0 315 0 0 316 0 0 317 0 0 318 0 0 319 0 0 320 0 0 321 0 0 322 0 0 323 0 0 324 0 0 325 0 0 326 0 0 327 0 0 328 0 0 329 0 0 330 0 0 331 0 0 332 0 0 333 0 0 334 0 0 335 0 0 336 0 0 337 0 0 338 0 0 339 0 0 340 0 0 341 0 0 342 0 0 343 0 0 344 0 0 345 0 0 346 0 0 347 0 0 348 0 0 349 0 0 350 0 0 351 0 0 352 0 0 353 0 0 354 0 0 355 0 0 356 0 0 357 0 0 358 0 0 359 0 0 360 0 0 361 0 0 362 0 0 363 0 0 364 0 0 365 0 0 366 0 0 367 0 0 368 0 0 369 0 0 370 0 0 371 0 0 372 0 0 373 0 0 374 0 0 375 0 0 376 0 0 377 0 0 378 0 0 379 0 0 380 0 0 381 0 0 382 0 0 383 0 0 384 0 0 385 0 0 386 0 0 387 0 0 388 0 0 389 0 0 390 0 0 391 0 0 392 0 0 393 0 0 394 0 0 395 0 0 396 0 0 397 0 0 398 0 0 399 0 0 400 0 0 401 0 0 402 0 0 403 0 0 404 0 0 405 0 0 406 0 0 407 0 0 408 0 0 409 0 0 410 0 0 411 0 0 412 0 0 413 0 0 414 0 0 415 0 0 416 0 0 417 0 0 418 0 0 419 0 0 420 0 0 421 0 0 422 0 0 423 0 0 424 0 0 425 0 0 426 0 0 427 0 0 428 0 0 429 0 0 430 0 0 431 0 0 432 0 0 433 0 0 434 0 0 435 0 0 436 0 0 437 0 0 438 0 0 439 0 0 440 0 0 441 0 0 442 0 0 443 0 0 444 0 0 445 0 0 446 0 0 447 0 0 448 0 0 449 0 0 450 0 0 451 0 0 452 0 0 453 0 0 454 0 0 455 0 0 456 0 0 457 0 0 458 0 0 459 0 0 460 0 0 461 0 0 462 0 0 463 0 0 464 0 0 465 0 0 466 0 0 467 0 0 468 0 0 469 0 0 470 0 0 471 0 0 472 0 0 473 0 0 474 0 0 475 0 0 476 0 0 477 0 0 478 0 0 479 0 0 480 0 0 481 0 0 482 0 0 483 0 0 484 0 0 485 0 0 486 0 0 487 0 0 488 0 0 489 0 0 490 0 0 491 0 0 492 0 0 493 0 0 494 0 0 495 0 0 496 0 0 497 0 0 498 0 0 499 0 0 500 0 0 501 0 0 502 0 0 503 0 0 504 0 0 505 0 0 506 0 0 507 0 0 508 0 0 509 0 0 510 0 0 511 0 0 512 0 0 513 0 0 514 0 0 515 0 0 516 0 0 517 0 0 518 0 0 519 0 0 520 0 0 521 0 0 522 0 0 523 0 0 524 0 0 525 0 0 526 0 0 527 0 0 528 0 0 529 0 0 530 0 0 531 0 0 532 0 0 533 0 0 534 0 0 535 0 0 536 0 0 537 0 0 538 0 0 539 0 0 540 0 0 541 0 0 542 0 0 543 0 0 544 0 0 545 0 0 546 0 0 547 0 0 548 0 0 549 0 0 550 0 0 551 0 0 552 0 0 553 0 0 554 0 0 555 0 0 556 0 0 557 0 0 558 0 0 559 0 0 560 0 0 561 0 0 562 0 0 563 0 0 564 0 0 565 0 0 566 0 0 567 0 0 568 0 0 569 0 0 570 0 0 571 0 0 572 0 0 573 0 0 574 0 0 575 0 0 576 0 0 577 0 0 578 0 0 579 0 0 580 0 0 581 0 0 582 0 0 583 0 0 584 0 0 585 0 0 586 0 0 587 0 0 588 0 0 589 0 0 590 0 0 591 0 0 592 0 0 593 0 0 594 0 0 595 0 0 596 0 0 597 0 0 598 0 0 599 0 0 600 0 0 601 0 0 602 0 0 603 0 0 604 0 0 605 0 0 606 0 0 607 0 0 608 0 0 609 0 0 610 0 0 611 0 0 612 0 0 613 0 0 614 0 0 615 0 0 616 0 0 617 0 0 618 0 0 619 0 0 620 0 0 621 0 0 622 0 0 623 0 0 624 0 0 625 0 0 626 0 0 627 0 0 628 0 0 629 0 0 630 0 0 631 0 0 632 0 0 633 0 0 634 0 0 635 0 0 636 0 0 637 0 0 638 0 0 639 0 0 640 0 0 641 0 0 642 0 0 643 0 0 644 0 0 645 0 0 646 0 0 647 0 0 648 0 0 649 0 0 650 0 0 651 0 0 652 0 0 653 0 0 654 0 0 655 0 0 656 0 0 657 0 0 658 0 0 659 0 0 660 0 0 661 0 0 662 0 0 663 0 0 664 0 0 665 0 0 666 0 0 667 0 0 668 0 0 669 0 0 670 0 0 671 0 0 672 0 0 673 0 0 674 0 0 675 0 0 676 0 0 677 0 0 678 0 0 679 0 0 680 0 0 681 0 0 682 0 0 683 0 0 684 0 0 685 0 0 686 0 0 687 0 0 688 0 0 689 0 0 690 0 0 691 0 0 692 0 0 693 0 0 694 0 0 695 0 0 696 0 0 697 0 0 698 0 0 699 0 0 700 0 0 701 0 0 702 0 0 703 0 0 704 0 0 705 0 0 706 0 0 707 0 0 708 0 0 709 0 0 710 0 0 711 0 0 712 0 0 713 0 0 714 0 0 715 0 0 716 0 0 717 0 0 718 0 0 719 0 0 720 0 0 721 0 0 722 0 0 723 0 0 724 0 0 725 0 0 726 0 0 727 0 0 728 0 0 729 0 0 730 0 0 731 0 0 732 0 0 733 0 0 734 0 0 735 0 0 736 0 0 737 0 0 738 0 0 739 0 0 740 0 0 741 0 0 742 0 0 743 0 0 744 0 0 745 0 0 746 0 0 747 0 0 748 0 0 749 0 0 750 0 0 751 0 0 752 0 0 753 0 0 754 0 0 755 0 0 756 0 0 757 0 0 758 0 0 759 0 0 760 0 0 761 0 0 762 0 0 763 0 0 764 0 0 765 0 0 766 0 0 767 0 0 768 0 0 769 0 0 770 0 0 771 0 0 772 0 0 773 0 0 774 0 0 775 0 0 776 0 0 777 0 0 778 0 0 779 0 0 780 0 0 781 0 0 782 0 0 783 0 0 784 0 0 785 0 0 786 0 0 787 0 0 788 0 0 789 0 0 790 0 0 791 0 0 792 0 0 793 0 0 794 0 0 795 0 0 796 0 0 797 0 0 798 0 0 799 0 0 800 0 0 801 0 0 802 0 0 803 0 0 804 0 0 805 0 0 806 0 0 807 0 0 808 0 0 809 0 0 810 0 0 811 0 0 812 0 0 813 0 0 814 0 0 815 0 0 816 0 0 817 0 0 818 0 0 819 0 0 820 0 0 821 0 0 822 0 0 823 0 0 824 0 0 825 0 0 826 0 0 827 0 0 828 0 0 829 0 0 830 0 0 831 0 0 832 0 0 833 0 0 834 0 0 835 0 0 836 0 0 837 0 0 838 0 0 839 0 0 840 0 0 841 0 0 842 0 0 843 0 0 844 0 0 845 0 0 846 0 0 847 0 0 848 0 0 849 0 0 850 0 0 851 0 0 852 0 0 853 0 0 854 0 0 855 0 0 856 0 0 857 0 0 858 0 0 859 0 0 860 0 0 861 0 0 862 0 0 863 0 0 864 0 0 865 0 0 866 0 0 867 0 0 868 0 0 869 0 0 870 0 0 871 0 0 872 0 0 873 0 0 874 0 0 875 0 0 876 0 0 877 0 0 878 0 0 879 0 0 880 0 0 881 0 0 882 0 0 883 0 0 884 0 0 885 0 0 886 0 0 887 0 0 888 0 0 889 0 0 890 0 0 891 0 0 892 0 0 893 0 0 894 0 0 895 0 0 896 0 0 897 0 0 898 0 0 899 0 0 900 0 0 901 0 0 902 0 0 903 0 0 904 0 0 905 0 0 906 0 0 907 0 0 908 0 0 909 0 0 910 0 0 911 0 0 912 0 0 913 0 0 914 0 0 915 0 0 916 0 0 917 0 0 918 0 0 919 0 0 920 0 0 921 0 0 922 0 0 923 0 0 924 0 0 925 0 0 926 0 0 927 0 0 928 0 0 929 0 0 930 0 0 931 0 0 932 0 0 933 0 0 934 0 0 935 0 0 936 0 0 937 0 0 938 0 0 939 0 0 940 0 0 941 0 0 942 0 0 943 0 0 944 0 0 945 0 0 946 0 0 947 0 0 948 0 0 949 0 0 950 0 0 951 0 0 952 0 0 953 0 0 954 0 0 955 0 0 956 0 0 957 0 0 ****************Time: 100.988 trainer.getErrorValue = 1.38629447264277 StageITrainer.getErrorValue = 341.896192465936 StageIITrainer.getErrorValue = 1.38629447264277Link to C# source.