| Hey Matt, Attached are the matrix style data file (rows are sequences, final column is the label of the sequence), the csv data file formatted to run the swarm (labels removed and sequences concatenated), and the main py script for reference. Thanks! Nick |
0,5,3,4,5,4,5,8,8,9,9,10,13,12,12,12,11,12,12,14,14,14,0,0,15,3,6,6,5,0 12,2,3,4,4,4,5,4,7,7,8,9,8,12,12,10,13,11,12,9,12,12,13,14,14,14,0,0,14,0 0,5,3,4,4,5,5,6,7,8,7,9,9,10,12,12,14,12,13,10,13,11,14,15,15,15,0,0,15,0 12,2,6,4,5,6,6,6,9,8,14,9,10,12,12,12,12,12,12,14,14,14,15,1,15,2,5,4,5,0 14,4,5,4,4,5,5,7,8,8,9,9,10,12,12,11,12,13,13,13,14,14,15,0,1,4,8,7,4,0 3,2,1,2,0,2,3,1,4,3,2,9,10,12,10,10,12,10,10,11,9,9,12,9,12,9,10,13,8,1 3,6,2,4,4,4,5,5,4,4,2,6,3,12,13,12,14,12,12,11,14,13,12,10,11,13,13,13,15,1 1,2,1,1,2,2,2,4,2,14,10,12,11,11,11,12,14,8,10,13,9,11,9,8,9,12,9,10,10,1 2,1,2,1,3,2,4,1,2,1,2,8,12,11,13,13,8,13,12,9,10,9,10,12,10,14,11,12,8,1 1,2,1,2,1,2,2,0,3,2,7,2,13,9,13,11,14,10,12,9,12,12,14,13,13,14,12,14,12,1 0,14,15,14,11,10,10,10,9,9,9,8,8,8,6,6,3,2,2,1,0,15,1,14,14,14,15,15,0,2 4,0,1,15,1,14,12,10,10,12,10,8,8,8,6,7,4,4,2,0,15,15,14,15,15,14,15,15,15,2 4,1,15,0,15,11,10,12,10,11,9,7,8,6,7,4,4,0,1,14,15,14,14,14,14,0,15,0,0,2 5,1,0,0,0,14,13,10,10,11,8,9,8,9,6,6,4,3,2,15,0,15,14,14,13,0,15,0,15,2 4,0,0,0,1,13,14,10,9,10,9,8,8,8,6,6,4,2,2,13,15,14,14,15,14,14,0,0,1,2 2,1,15,0,15,14,0,12,10,10,8,8,7,7,3,3,0,0,15,0,14,13,10,9,9,8,8,6,7,3 0,0,15,15,1,15,0,14,9,9,9,8,9,5,0,0,0,0,15,0,14,13,9,10,9,7,8,8,8,3 2,0,0,0,0,15,0,14,9,9,8,8,8,0,0,0,15,0,0,14,10,9,8,9,7,10,7,7,8,3 2,15,0,15,15,10,11,8,8,8,8,7,7,1,14,0,15,15,15,14,10,9,9,8,8,7,8,8,7,3 2,1,0,0,14,14,14,10,9,8,9,8,8,0,0,0,0,15,0,1,14,13,9,9,8,8,8,8,7,3 13,11,13,11,11,12,10,11,0,15,0,15,0,0,0,15,0,4,4,4,5,5,4,8,11,13,12,12,12,4 10,9,11,10,11,15,14,15,0,15,0,15,15,14,2,2,5,3,3,3,2,3,11,12,12,12,12,11,11,4 10,11,10,10,10,10,10,14,0,15,0,15,0,14,0,15,15,3,4,3,2,2,2,9,12,10,12,11,11,4 10,8,9,10,8,13,14,0,14,15,14,0,15,15,15,15,0,3,3,3,3,3,4,11,12,11,12,12,10,4 10,11,10,10,11,12,12,0,0,15,0,15,0,0,15,0,14,4,4,3,2,2,3,10,11,12,12,11,11,4 8,8,7,8,8,8,8,4,13,13,11,2,1,0,0,0,0,15,15,12,10,10,9,8,8,7,7,8,7,5 8,7,8,7,8,8,6,9,6,6,13,10,11,0,0,0,0,0,0,0,0,15,13,10,9,7,8,6,9,5 8,8,7,8,8,8,8,7,10,11,14,1,0,1,0,0,0,15,0,0,13,12,9,8,7,9,7,8,7,5 8,8,8,7,9,7,8,7,8,8,12,10,15,0,1,1,0,0,0,0,15,15,12,8,8,8,8,8,7,5 6,9,6,7,7,8,8,8,7,0,10,13,1,0,0,0,0,0,1,15,0,0,10,10,9,8,7,8,6,5 6,9,8,8,8,9,10,10,13,12,14,14,15,14,0,15,0,0,0,1,5,4,6,7,7,7,7,8,8,6 6,8,8,8,9,10,10,12,11,10,13,13,13,14,15,0,0,0,0,2,5,4,6,7,6,8,6,7,7,6 2,8,8,8,8,9,9,11,12,11,12,14,14,15,0,0,0,2,3,8,5,6,6,7,8,7,9,8,12,6 3,7,9,8,6,10,9,12,12,13,13,15,14,14,0,0,0,3,3,7,6,6,7,7,7,7,9,8,11,6 1,8,8,8,6,11,10,9,12,10,13,14,14,15,15,0,0,1,1,7,5,6,6,7,7,7,8,9,11,6 2,14,0,0,1,15,15,1,15,0,0,0,1,0,9,6,10,4,5,10,8,10,8,11,9,10,9,10,9,7 0,0,0,0,0,0,0,0,2,2,9,8,9,10,11,10,10,7,9,9,8,8,10,10,9,5,12,8,7,7 0,0,2,3,4,6,6,6,9,10,15,0,0,0,15,14,14,11,12,9,9,8,8,7,7,2,2,3,1,8 0,2,4,3,5,7,7,7,8,8,13,0,14,14,14,15,14,13,13,10,8,9,8,7,6,3,2,2,1,8 0,1,2,2,5,7,6,7,9,9,14,14,15,15,15,15,14,12,12,9,8,8,8,7,5,4,1,2,0,8 0,0,1,1,4,6,6,6,7,6,10,15,15,14,0,1,15,14,14,11,9,9,8,8,8,6,2,4,2,8 15,0,1,2,4,5,4,7,8,6,11,15,14,15,15,15,14,14,12,11,10,10,8,7,8,5,2,3,2,8 0,0,0,0,0,0,0,1,0,0,0,6,8,5,10,10,12,11,11,10,12,10,12,11,10,4,15,10,4,7 4,5,2,4,0,12,13,12,12,12,5,5,5,6,5,0,14,0,0,15,0,0,14,8,8,9,8,9,7,10 9,2,1,3,2,12,12,12,13,10,4,6,5,6,15,15,0,0,0,0,0,0,10,8,8,8,9,8,8,10 9,2,2,4,4,14,12,13,13,13,6,6,6,6,6,15,0,0,0,0,0,0,0,6,8,7,8,8,8,10 4,3,3,4,4,12,12,13,13,12,5,8,6,7,6,15,0,15,0,0,15,0,15,7,7,10,6,9,9,10 4,2,4,3,9,13,13,14,12,13,5,9,6,5,7,14,0,0,0,15,0,0,0,8,8,8,9,8,7,10 10,6,8,8,10,12,11,14,1,15,2,0,2,1,2,1,2,1,0,2,0,0,1,2,2,14,2,1,0,11 8,8,12,10,10,12,11,1,14,0,2,0,2,0,2,0,3,1,1,2,0,2,1,0,0,0,1,0,0,11 10,12,8,10,12,12,2,14,2,14,2,0,2,15,2,0,2,0,2,0,1,2,0,2,14,1,0,0,0,11 8,10,11,11,10,12,10,12,2,3,0,2,2,15,2,0,1,1,1,2,0,2,15,1,0,1,0,0,0,11 8,10,9,9,10,12,12,13,2,1,3,0,0,3,0,0,1,2,0,1,2,0,1,0,1,14,2,0,0,11 9,10,10,9,11,8,9,7,6,6,4,4,5,2,3,3,0,13,13,15,14,13,15,13,13,15,14,14,15,12 9,9,10,9,10,10,9,9,8,8,6,5,5,5,3,4,3,3,2,13,12,14,13,13,12,14,14,15,14,12 11,9,10,10,10,10,9,8,7,7,6,4,4,4,4,4,2,0,0,13,14,14,14,14,14,0,14,14,15,12 10,10,10,9,11,6,7,6,5,5,4,4,4,4,2,2,1,13,14,13,14,12,14,14,13,0,14,0,13,12 8,9,10,9,10,8,10,8,4,5,2,4,3,2,2,1,1,14,14,13,14,14,12,14,13,14,14,13,14,12 0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,2,14,2,0,0,2,14,1,0,13 14,2,0,1,14,2,0,0,0,14,2,0,0,2,14,0,2,14,0,2,14,0,2,14,0,0,1,0,0,13 2,14,1,0,14,2,0,0,0,0,0,2,14,2,0,1,1,1,0,2,14,2,14,1,0,0,2,14,1,13 2,0,14,2,14,1,2,14,1,0,2,14,0,0,1,0,2,14,14,2,0,0,0,0,0,0,0,1,14,13 14,2,0,1,1,1,1,1,1,1,1,1,2,0,0,0,0,2,14,2,0,0,0,0,14,2,14,0,0,13 14,4,8,9,6,8,6,10,6,6,10,6,8,8,8,6,8,8,8,8,8,8,8,8,6,10,8,8,10,14 6,10,6,8,8,8,6,9,6,8,6,9,6,10,6,9,6,8,8,8,8,8,8,6,8,6,9,8,8,14 14,1,14,12,6,9,9,6,8,8,8,8,8,8,8,6,9,6,6,9,6,6,8,8,9,6,9,8,8,14 0,0,0,14,1,14,14,6,10,8,8,6,8,8,8,8,6,9,8,8,8,8,8,8,8,9,6,8,8,14 10,6,9,10,6,9,8,8,8,6,10,6,6,10,6,8,8,8,8,8,8,8,8,8,6,8,8,8,8,14 4,5,5,6,7,8,10,15,15,15,0,14,15,14,14,14,12,9,10,8,8,8,8,7,7,8,6,4,4,15 9,9,12,13,12,15,13,0,13,13,15,13,15,12,13,11,12,9,11,8,9,8,9,8,9,7,8,8,7,15 7,8,12,14,12,15,0,12,15,14,15,13,14,12,13,13,11,10,10,9,8,9,7,8,8,8,6,7,6,15 6,7,7,7,8,8,8,12,15,15,14,15,14,1,14,15,12,11,12,10,9,8,8,7,8,8,6,6,6,15 7,6,8,6,9,12,12,15,14,14,0,15,15,15,13,13,11,10,9,9,8,7,8,7,7,6,7,7,5,15 1,14,0,0,8,12,8,11,11,10,12,10,12,8,12,12,10,12,10,12,12,10,14,10,12,10,11,11,7,7 0,0,0,14,0,8,8,9,9,8,9,9,11,10,11,12,10,11,11,10,11,10,10,9,10,9,7,8,4,7 6,8,7,8,8,10,11,11,14,14,15,15,0,0,1,2,4,4,4,4,11,11,11,11,10,14,10,11,12,9 1,3,5,4,7,8,8,8,8,9,9,11,11,14,15,15,0,1,1,6,2,3,4,12,10,11,10,10,11,9 4,6,9,8,8,9,9,10,11,12,13,0,14,1,2,3,2,5,4,4,10,10,12,10,10,12,11,11,12,9 4,6,8,6,8,9,10,12,12,12,15,15,0,0,1,2,3,4,4,4,10,11,10,11,11,10,12,11,11,9 3,2,5,5,7,8,7,9,11,10,12,12,13,14,15,14,0,3,4,4,4,4,4,11,12,10,12,11,13,9 4,1,4,4,2,3,4,2,2,4,12,10,13,9,13,10,13,10,12,10,11,11,13,10,10,12,10,9,11,1 2,4,4,3,2,4,2,5,2,4,2,12,12,12,11,10,13,10,10,13,10,12,10,12,12,12,12,12,11,1 2,5,2,4,2,4,3,4,4,4,4,12,11,13,11,10,13,11,12,12,12,12,12,12,11,13,11,12,11,1 4,1,4,3,2,4,4,3,0,0,14,10,11,14,12,11,14,12,12,12,11,14,9,12,12,12,12,11,12,1 2,4,3,4,1,4,4,2,4,12,10,11,12,9,12,11,13,10,12,12,12,12,10,12,11,10,12,11,11,1 2,0,15,15,15,13,12,12,11,10,11,10,10,8,8,8,7,6,6,4,2,1,14,15,15,14,0,15,15,2 4,2,15,0,0,14,15,14,12,12,13,10,12,10,9,8,8,6,7,4,1,1,0,14,14,15,15,14,0,2 2,15,0,15,0,14,14,10,10,11,9,8,8,8,8,8,8,6,7,5,1,1,14,0,0,14,15,15,15,2 2,0,0,0,0,15,15,14,13,13,8,11,10,10,7,8,8,6,7,5,1,2,15,15,15,14,15,15,14,2 3,3,1,1,0,15,15,0,13,12,12,11,10,10,8,9,7,7,8,5,2,2,14,15,14,15,15,15,15,2 1,0,0,0,0,14,14,13,10,10,8,7,8,8,0,1,0,0,0,15,11,10,8,9,8,8,7,7,7,3 1,15,0,0,0,11,9,8,7,8,7,0,1,0,0,0,0,12,11,8,9,9,8,8,8,8,7,6,8,3 1,1,0,15,15,15,14,10,8,9,7,8,7,7,0,0,0,15,0,15,11,10,7,8,8,8,7,7,8,3 3,15,1,0,0,0,15,15,9,9,8,7,8,7,0,0,15,0,0,0,14,15,10,8,9,8,8,8,8,3 1,0,0,1,14,0,14,0,10,9,8,8,8,8,7,8,0,0,0,15,15,0,10,8,8,8,8,8,7,3 10,9,9,9,10,11,11,9,0,0,15,0,15,1,15,0,14,1,2,5,6,6,6,9,10,12,12,11,12,4 8,8,12,12,7,8,9,12,1,15,0,15,0,0,0,15,0,15,0,4,6,6,7,10,12,10,14,12,12,4 14,10,11,12,10,2,0,15,0,15,15,0,0,15,2,2,5,6,6,8,9,11,10,13,12,11,11,10,11,4 12,13,12,11,10,1,15,0,0,0,0,0,0,15,1,2,5,6,7,6,8,9,11,12,13,12,12,11,11,4 9,13,9,10,9,12,11,7,0,0,0,0,15,1,15,14,1,3,2,6,7,7,7,10,10,13,10,12,10,4 7,8,8,7,0,11,12,11,1,0,14,0,15,14,15,0,10,8,10,7,8,8,8,7,8,7,7,8,8,5 7,9,6,8,8,8,8,8,7,6,11,2,0,0,15,0,0,14,0,13,9,9,9,8,8,7,8,8,7,5 8,8,8,8,8,8,7,8,7,8,10,11,12,8,13,4,1,0,0,0,0,0,0,15,14,0,12,11,8,5 7,7,8,7,7,8,6,9,15,9,1,15,15,0,15,15,0,14,10,13,10,9,9,8,8,8,8,8,6,5 8,8,8,8,8,8,8,8,7,10,12,9,11,0,0,0,14,0,0,1,14,14,10,8,9,8,7,8,7,5 7,8,8,7,9,8,8,6,9,8,9,8,8,10,13,14,13,0,14,1,0,0,1,1,1,6,5,6,7,6 6,9,6,7,8,8,8,6,9,8,8,10,11,14,0,15,15,0,0,15,1,0,4,6,6,7,8,8,7,6 6,8,7,7,8,8,8,8,8,8,8,8,8,9,11,13,12,14,14,15,15,15,15,1,0,4,4,5,6,6 7,7,7,7,8,8,8,8,8,8,7,10,9,14,11,13,14,15,15,0,0,0,0,0,2,5,5,5,7,6 8,6,8,7,9,8,7,9,7,8,7,9,9,11,12,13,15,0,14,2,15,1,0,5,4,6,7,7,8,6 12,1,0,0,0,0,0,0,0,0,0,0,15,0,0,4,8,10,8,9,11,10,14,9,12,9,12,12,10,7 0,0,0,0,15,1,0,0,2,5,8,9,10,10,12,10,13,10,10,12,10,12,12,10,12,11,10,12,10,7 1,15,1,15,1,15,0,0,0,1,15,4,6,9,9,9,9,10,10,9,13,11,11,10,12,10,10,12,7,7 15,1,15,0,0,14,15,1,0,0,0,1,1,10,10,9,10,11,9,12,9,9,10,11,13,12,12,12,11,7 0,14,0,0,0,0,15,15,1,1,15,1,15,1,15,1,9,10,12,7,9,8,8,9,9,12,11,11,12,7 15,0,1,1,5,8,8,6,8,8,8,13,14,14,0,14,1,14,13,9,7,7,8,6,7,2,0,0,0,8 0,3,6,6,7,7,7,8,8,8,8,11,13,0,0,0,0,15,15,9,8,8,7,7,5,15,2,1,15,8 2,0,0,0,0,14,15,13,9,10,8,9,9,8,8,9,8,13,14,14,1,1,0,0,0,4,6,6,6,8 4,4,6,6,6,8,7,8,8,9,14,0,14,0,15,14,14,9,8,9,6,7,6,4,2,0,0,0,15,8 2,5,5,6,8,7,9,8,10,10,13,14,14,14,14,15,12,8,9,7,8,8,8,5,4,1,0,2,0,8 4,2,4,4,2,4,4,4,6,6,8,7,8,8,8,8,8,11,11,14,15,0,14,0,0,0,0,15,2,9 4,2,5,2,4,2,4,2,4,5,6,7,7,7,8,8,8,8,8,10,13,12,15,15,15,15,0,15,0,9 9,8,7,8,8,7,7,7,6,6,2,3,2,1,0,1,0,15,15,14,12,12,10,12,10,12,12,10,13,9 3,4,4,4,4,3,4,4,4,4,4,6,6,8,8,7,8,10,9,13,12,13,15,14,15,15,0,0,0,9 2,5,2,4,2,4,4,1,4,4,4,4,5,4,6,6,7,8,8,8,10,11,15,14,0,14,0,15,0,9 1,4,2,4,12,1,14,14,7,7,6,7,9,6,14,0,15,0,0,15,0,15,1,12,9,9,9,9,8,10 2,1,2,3,14,11,12,7,7,7,6,8,6,12,15,15,1,15,0,0,0,15,0,13,9,8,9,8,9,10 4,1,5,0,14,14,0,12,6,7,7,6,8,7,0,0,15,0,0,0,0,0,15,8,9,8,8,8,9,10 3,4,0,15,15,14,14,6,6,7,6,7,7,8,7,0,0,15,0,15,0,0,0,0,0,12,8,8,9,10 2,3,0,2,12,0,14,10,7,7,7,7,6,7,2,0,0,15,0,0,0,15,0,9,9,8,8,8,9,10 14,15,13,1,5,6,6,7,7,8,7,9,7,10,14,13,15,15,15,0,15,15,0,13,10,8,8,8,6,15 7,7,8,8,8,8,8,8,8,7,9,14,14,15,0,0,0,0,0,0,14,15,10,6,8,7,8,8,8,15 0,7,7,7,7,7,8,7,8,8,10,14,14,0,0,0,0,0,0,15,15,15,11,7,8,7,8,8,8,15 7,6,8,8,6,8,8,8,11,12,15,0,15,1,15,0,0,0,0,0,15,1,13,7,8,8,7,8,7,15 6,8,8,8,8,8,8,7,8,11,14,0,15,0,0,0,0,0,0,0,0,0,15,11,10,6,8,8,8,15 9,13,10,10,11,0,2,14,1,2,14,2,1,0,1,1,1,0,0,2,0,1,0,2,0,1,1,0,1,11 12,9,12,13,8,13,10,10,0,2,14,2,15,2,0,1,1,0,1,1,1,0,2,0,0,2,0,0,1,11 10,11,8,11,9,10,10,13,2,0,2,0,0,1,0,1,1,0,0,1,0,0,2,0,2,14,0,0,0,11 9,10,10,11,9,8,8,0,14,0,1,0,1,0,1,0,1,1,2,14,0,1,1,1,15,2,0,0,1,11 10,9,10,11,9,12,12,10,0,0,1,1,0,14,2,0,1,0,2,14,2,0,0,1,0,1,0,1,1,11 10,10,9,11,8,8,9,7,8,8,6,6,5,4,3,4,3,1,2,14,0,15,15,14,14,15,14,14,14,12 9,10,11,11,9,9,9,8,8,8,6,6,5,5,3,4,3,1,2,14,15,14,0,12,15,13,14,14,14,12 9,10,10,10,10,9,10,6,8,7,6,6,4,5,3,4,2,0,0,0,14,14,14,13,14,13,15,15,15,12 11,10,11,10,10,9,10,7,8,7,7,5,5,4,3,4,2,2,2,0,15,15,14,14,13,15,13,14,14,12 8,11,9,11,11,10,11,9,8,7,7,5,5,4,4,4,2,2,2,1,0,0,15,14,13,13,14,14,14,12 1,9,6,6,8,8,8,8,6,8,8,6,8,8,8,9,6,9,9,6,9,8,8,8,8,8,8,7,15,14 8,8,8,8,8,8,8,6,9,9,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,7,13 8,8,8,6,8,8,8,8,8,6,10,6,8,8,6,8,8,8,6,8,8,9,6,8,8,8,6,8,8,14 8,8,6,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,8,8,8,14 10,6,9,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14 0,0,0,1,14,2,0,2,14,1,0,0,0,0,0,14,2,0,2,14,1,0,2,14,0,0,0,1,13,13 0,0,0,0,0,0,1,14,2,0,0,0,1,14,2,0,0,0,1,0,0,0,0,0,1,14,0,0,0,13 2,14,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,2,14,1,1,15,13 2,14,1,1,0,0,1,0,0,0,0,0,0,2,14,1,14,2,0,0,0,1,0,0,0,0,0,0,15,13 3,4,5,5,3,8,8,8,10,10,10,12,11,11,12,11,12,12,13,0,0,0,0,2,2,4,3,4,3,0 3,4,4,4,4,7,7,10,11,12,9,12,10,12,11,12,12,14,13,0,0,15,1,3,2,4,4,6,3,0 4,5,5,5,7,10,10,11,10,11,10,12,10,12,12,12,14,15,0,15,0,1,1,5,4,4,4,4,3,0 2,5,4,4,6,8,8,8,10,10,10,11,10,10,12,11,13,15,14,0,0,15,1,3,3,3,3,4,2,0 2,4,4,5,6,9,8,9,10,9,12,10,11,10,13,13,14,14,14,0,0,15,2,4,3,3,4,4,3,0 8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,9,14 2,6,2,4,4,4,5,11,12,12,12,12,13,10,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,1 2,5,2,2,4,2,5,13,12,10,14,10,12,12,13,13,12,12,13,12,13,10,12,12,14,12,10,12,11,1 4,2,4,4,5,2,5,0,12,12,14,11,12,14,11,12,10,11,12,14,11,10,10,14,12,13,14,14,11,1 4,4,2,2,4,14,12,12,12,12,12,12,10,13,12,14,10,13,13,12,12,12,12,12,10,12,12,13,12,1 4,2,5,2,5,14,14,10,13,11,14,10,12,12,12,12,12,12,12,12,12,12,12,12,12,10,12,12,9,1 3,2,0,0,0,13,13,11,12,11,11,10,10,10,8,10,8,8,7,5,2,2,14,0,14,12,13,14,14,2 3,1,0,0,15,13,13,10,10,10,8,10,8,8,8,7,7,4,4,0,14,14,11,13,13,0,15,0,0,2 2,0,0,15,15,12,13,10,10,10,9,9,8,8,8,8,8,6,6,1,15,15,14,13,14,14,0,14,1,2 6,5,1,1,0,0,0,15,13,12,10,11,10,10,10,10,10,7,8,6,4,4,0,14,0,13,14,14,15,2 6,2,0,0,0,0,0,15,12,12,10,10,10,10,9,10,8,6,8,6,2,2,1,14,15,12,14,14,0,2 3,1,0,0,0,12,13,10,9,10,10,8,9,8,3,2,0,0,0,0,14,14,11,12,12,11,10,10,10,3 3,0,0,0,14,12,12,10,10,10,10,7,6,0,0,0,0,12,12,14,11,11,9,10,8,9,9,8,8,3 0,0,14,14,10,9,9,9,8,10,7,9,6,0,0,1,15,0,0,15,12,13,11,11,10,10,8,8,8,3 1,15,12,11,9,8,9,8,7,8,5,15,0,0,0,15,15,13,13,9,8,8,8,7,9,6,8,7,8,3 1,15,0,0,12,9,9,8,8,8,9,8,8,1,15,0,15,0,0,14,11,10,8,8,8,8,8,7,14,3 11,10,11,10,10,1,1,15,1,0,0,0,0,15,2,8,4,4,4,4,3,8,11,11,12,11,11,11,12,4 12,10,12,11,10,0,15,1,0,0,14,6,5,2,4,4,4,10,12,12,12,12,10,12,11,11,10,10,11,4 11,12,11,10,12,1,0,15,0,0,0,0,14,6,4,4,4,4,4,11,11,11,12,11,11,10,10,11,12,4 11,12,11,11,12,12,11,13,10,12,2,14,0,0,15,0,14,6,6,5,4,4,4,10,12,12,10,10,10,4 9,11,11,11,13,11,10,1,0,0,15,0,0,0,14,14,6,4,4,4,5,8,11,12,11,11,12,11,12,4 8,8,8,7,8,13,12,12,11,10,1,1,0,1,0,0,0,14,12,13,10,12,9,10,9,9,9,8,8,5 8,6,8,8,6,10,11,12,11,10,12,2,1,0,0,0,0,13,12,12,10,10,9,8,8,8,7,8,6,5 8,8,8,7,8,8,8,13,10,10,1,0,0,0,0,0,15,14,12,9,9,10,8,9,8,8,8,8,7,5 8,8,7,7,7,7,8,6,11,11,11,11,10,1,1,1,15,0,0,15,15,15,13,11,12,10,8,8,9,5 7,8,7,8,6,8,7,13,11,12,11,0,1,0,0,0,0,14,14,10,9,9,8,8,8,7,7,8,5,5 8,7,8,7,10,8,9,10,11,11,12,14,14,14,0,15,15,2,3,3,6,5,7,7,8,7,8,6,10,6 8,8,8,8,8,10,8,10,11,10,11,12,12,14,14,14,0,0,0,0,1,1,2,5,4,6,6,6,6,6 8,10,8,9,8,10,10,10,11,11,11,12,12,12,14,14,14,0,15,0,1,2,2,4,4,5,6,6,6,6 8,8,8,8,8,8,8,8,8,9,10,11,11,12,14,14,0,0,15,1,0,0,2,6,5,7,6,7,6,6 8,8,9,10,8,11,11,10,12,10,13,12,12,13,14,15,0,0,0,0,3,2,4,4,4,6,6,6,6,6 0,1,0,1,15,0,0,0,0,0,14,0,15,1,14,1,15,14,15,9,9,9,8,11,13,10,10,11,10,7 0,15,1,15,1,0,15,1,15,0,0,0,0,0,9,9,10,9,10,8,10,9,10,8,10,8,11,10,9,7 1,15,0,0,0,0,0,0,0,0,0,11,8,9,9,10,10,10,10,10,11,11,10,11,11,10,12,11,12,7 0,2,15,0,0,0,0,10,10,10,10,11,12,9,12,10,10,12,10,13,10,12,9,12,11,10,12,14,9,7 0,0,0,0,0,0,1,15,0,0,0,0,0,15,9,10,8,11,10,11,10,11,10,11,10,12,10,10,12,7 0,0,3,5,7,6,7,6,8,9,14,14,14,14,13,14,10,8,8,7,8,8,4,1,2,1,1,0,2,8 0,15,1,0,5,7,6,8,6,7,11,14,14,14,14,13,10,8,8,7,7,7,7,2,2,1,0,1,0,8 0,4,6,6,6,8,8,7,12,13,15,14,15,14,11,11,8,8,8,8,7,6,6,3,4,0,1,0,15,8 0,0,4,5,6,7,6,8,12,13,14,14,13,14,10,11,7,7,7,4,2,4,0,1,0,15,2,1,6,8 2,6,7,7,7,8,7,8,14,15,15,14,15,14,13,13,9,8,8,7,7,8,6,2,3,1,1,0,0,8 10,9,9,9,8,8,8,5,3,3,1,2,2,0,1,0,15,0,15,11,12,11,10,12,11,12,12,12,11,9 12,11,9,10,7,9,8,8,5,5,2,3,2,2,0,0,0,0,15,10,10,11,11,10,11,11,10,12,12,9 11,10,11,11,10,8,9,8,7,7,5,3,4,4,2,3,1,2,2,1,0,0,15,12,12,10,10,10,11,0 10,11,8,8,8,7,8,7,6,4,3,2,2,1,0,0,12,10,10,12,10,10,12,12,12,12,11,12,12,9 12,11,10,10,8,8,9,7,8,7,7,6,6,6,3,4,2,1,0,2,0,1,15,0,15,0,12,13,10,0 13,10,10,10,10,7,9,6,7,6,4,2,2,2,1,1,1,0,1,0,11,11,9,11,11,10,12,12,10,9 10,9,8,8,7,8,8,8,6,6,6,3,5,2,0,0,0,0,0,0,0,0,15,0,15,12,11,9,12,0 11,8,8,8,7,7,7,6,2,4,1,1,2,0,0,0,0,14,15,11,8,10,8,12,11,10,12,10,12,9 3,5,4,5,7,8,8,8,10,10,11,11,11,11,12,11,14,15,14,15,0,0,0,1,0,1,4,2,6,0 6,4,7,7,8,9,9,10,11,12,12,12,12,13,12,14,14,0,0,14,1,0,4,5,3,4,3,3,4,0 5,6,8,6,8,6,8,8,10,12,13,14,0,14,14,15,13,13,14,12,12,12,10,9,9,8,9,8,8,15 5,5,8,8,6,9,7,11,11,11,14,15,14,0,14,15,13,13,12,10,10,11,8,10,9,8,9,8,8,15 5,7,7,7,9,8,8,9,11,11,14,15,15,14,0,15,14,10,12,11,8,9,9,7,7,9,5,5,2,15 4,6,6,8,6,8,8,9,14,15,14,15,15,14,13,13,13,12,10,10,9,10,9,7,8,8,6,6,6,15 2,6,7,6,7,8,8,9,10,11,12,14,15,15,0,0,0,0,15,0,15,0,13,8,9,8,6,8,7,15 3,4,3,4,15,12,13,12,12,12,6,6,6,6,5,0,0,0,0,0,0,0,9,8,8,9,9,9,11,10 4,2,4,3,3,12,13,11,12,12,12,6,6,5,5,6,5,0,0,0,0,0,0,9,8,9,9,10,9,10 4,2,4,2,4,13,13,12,13,12,12,7,6,5,6,4,6,15,15,0,0,0,0,8,8,9,9,9,12,10 3,4,3,3,2,14,14,13,13,13,6,6,6,6,6,6,8,0,0,0,0,0,0,12,9,8,9,8,10,10 3,3,2,3,2,13,13,11,13,12,10,6,6,6,5,4,7,15,0,1,0,0,0,0,8,10,9,9,11,10 10,10,10,9,10,10,10,8,8,8,6,3,4,4,3,2,3,0,1,15,14,14,13,13,12,13,13,12,14,12 10,10,10,10,10,11,11,9,8,8,8,7,8,4,3,4,2,2,2,2,2,1,15,0,0,14,12,13,12,12 10,11,10,10,10,10,10,9,8,8,7,4,5,4,4,4,2,2,3,2,0,1,0,14,15,13,12,13,12,12 12,10,10,11,9,10,10,8,10,9,8,7,6,5,4,4,4,3,2,2,0,1,15,14,15,13,13,12,13,12 10,10,10,9,9,10,9,9,8,8,4,3,4,3,2,2,1,1,1,0,14,14,12,12,12,12,12,13,14,12 9,9,10,10,11,12,12,14,0,0,1,0,2,1,2,2,0,3,2,2,2,2,4,2,2,4,3,1,3,11 9,9,8,10,9,10,11,0,0,1,15,0,0,0,0,0,0,2,2,2,3,2,2,1,2,2,2,4,4,11 7,10,8,8,8,11,8,12,15,15,0,0,15,2,0,2,2,1,0,2,0,2,15,2,2,0,2,2,8,11 9,9,9,9,9,11,9,12,13,13,15,2,15,2,15,0,0,0,0,1,1,0,2,0,1,0,2,1,1,11 9,9,8,8,10,10,11,14,15,15,2,0,15,2,0,0,0,2,0,2,1,3,0,4,1,1,2,2,1,11 6,9,6,9,5,10,8,8,8,8,8,8,8,6,9,8,8,8,6,9,6,9,6,9,8,8,8,14,2,14 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,9,8,8,8,4,10,2,0,0,14 8,8,8,6,10,6,8,8,8,9,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14 6,8,8,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,6,9,8,8,8,8,8,8,8,6,14 8,6,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,6,10,6,6,10,14 1,0,1,1,0,1,1,1,0,0,2,0,0,1,14,1,14,2,0,0,0,2,13,1,14,1,10,8,15,13 1,14,2,0,0,0,1,0,1,14,2,14,2,14,1,2,14,1,0,0,0,1,14,0,1,13,0,13,8,13 2,14,1,0,0,0,0,0,0,0,0,0,0,0,0,14,2,0,0,0,0,0,0,0,0,0,0,14,15,13 14,1,0,0,1,14,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,2,14,1,1,0,0,8,10,13 0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,0,0,0,0,0,1,15,13 3,1,3,1,3,2,2,3,1,2,2,11,11,12,12,11,13,11,12,10,12,12,10,12,11,12,11,11,13,1 8,8,3,2,5,2,2,4,2,2,5,2,2,4,2,2,2,4,2,2,2,2,5,2,1,5,2,2,2,1 10,3,2,3,6,2,4,1,4,3,2,3,2,2,4,2,4,3,2,2,4,2,5,2,2,12,12,12,10,1 4,1,3,3,2,2,3,5,1,4,12,12,12,12,12,12,12,11,10,10,13,12,12,12,13,12,12,10,13,1 3,4,3,3,2,4,2,3,12,11,10,12,11,12,12,12,12,12,12,10,11,11,10,12,12,12,12,12,12,1 6,4,2,2,0,15,0,15,13,13,12,11,11,10,9,9,8,7,8,7,4,4,1,14,15,14,13,13,14,2 8,3,4,3,0,0,0,15,13,12,13,11,12,10,8,8,7,7,7,7,4,4,1,15,0,14,14,13,15,2 5,4,0,1,14,15,15,12,12,11,12,9,10,8,8,8,6,7,6,3,2,3,15,14,15,13,14,13,0,2 4,1,0,1,0,0,0,14,12,12,12,10,10,10,9,9,8,8,8,7,4,4,2,0,15,13,14,13,0,2 2,0,0,0,0,13,13,11,10,10,9,8,9,8,7,8,7,6,7,4,2,3,0,0,15,14,14,14,14,2 8,3,1,1,0,15,0,13,12,13,11,10,9,9,6,8,1,15,0,0,13,12,9,8,9,8,8,8,7,3 1,1,0,0,14,12,12,11,9,9,8,8,8,8,8,8,0,0,0,0,0,0,14,12,11,9,8,9,8,3 2,15,0,14,13,11,12,9,8,8,9,7,8,6,0,0,1,0,1,15,11,10,9,8,8,8,8,7,8,3 2,15,0,0,14,10,11,9,8,8,8,8,6,8,5,0,0,0,0,0,0,0,12,9,9,8,8,8,8,3 3,0,0,0,0,12,12,9,8,8,8,8,8,8,1,0,0,0,0,0,14,15,10,10,10,8,8,8,8,3 10,11,9,10,0,0,0,15,0,0,14,0,0,15,15,9,5,6,5,5,5,5,11,10,10,11,10,10,11,4 10,10,11,11,10,12,10,12,0,15,0,0,15,1,15,0,15,6,6,5,6,5,5,11,11,10,11,10,13,4 12,10,10,10,10,10,15,0,0,0,15,0,15,1,15,8,6,5,5,5,5,4,10,12,12,10,12,11,11,4 11,9,11,10,9,0,15,0,15,15,0,15,14,6,2,5,4,5,4,5,11,12,10,12,12,12,10,11,6,4 12,10,4,0,1,15,0,14,15,11,5,2,4,6,3,4,0,12,11,10,12,11,13,10,11,12,11,11,8,4 9,6,8,7,9,12,10,11,2,0,1,15,1,0,15,15,14,12,10,10,8,9,7,9,8,7,8,7,7,5 8,8,7,9,6,12,12,12,11,11,2,0,1,0,0,15,15,12,12,10,9,9,8,8,8,8,7,8,6,5 8,6,8,8,6,13,12,12,10,11,2,15,1,14,0,15,15,12,13,10,9,9,8,8,8,7,7,7,7,5 6,8,3,12,12,11,11,12,1,0,0,0,0,14,15,13,13,10,10,8,8,8,8,7,6,9,6,6,7,5 8,6,14,11,10,12,11,2,15,1,0,0,0,15,14,13,12,11,10,8,9,8,8,8,8,7,7,7,6,5 7,8,8,8,8,10,9,10,10,11,12,12,12,12,14,13,15,0,0,0,1,1,5,4,4,5,6,6,6,6 6,9,8,8,8,10,10,12,11,12,11,13,12,14,0,15,0,15,0,1,4,4,4,5,6,5,7,6,8,6 7,8,8,8,8,10,9,10,11,11,12,12,12,13,15,14,0,0,0,1,3,4,4,6,5,6,7,5,8,6 6,8,8,8,8,10,9,9,11,10,13,12,13,13,15,14,15,0,15,2,3,3,5,6,5,6,6,7,7,6 6,8,8,8,8,8,9,8,10,10,11,12,11,13,13,14,15,15,0,15,1,1,3,4,4,5,6,6,6,6 0,0,0,0,1,15,1,14,1,0,0,0,0,0,0,9,10,10,10,11,10,9,12,10,12,10,12,11,12,7 6,0,1,15,1,0,0,1,15,1,15,0,0,0,10,9,11,10,10,11,11,11,10,12,12,9,13,10,12,7 0,2,15,1,0,0,0,1,0,0,0,0,15,2,15,1,0,9,11,8,10,11,9,12,10,10,12,12,10,7 15,1,0,1,15,1,0,15,1,15,1,15,0,8,11,8,9,11,10,12,10,12,10,12,13,10,12,12,12,7 1,0,1,0,0,1,0,1,0,0,0,9,10,9,10,9,13,10,10,12,10,10,13,10,11,11,11,10,13,7 14,2,0,1,7,10,8,10,13,13,0,15,15,15,15,15,13,9,9,8,7,7,7,6,7,4,2,2,0,8 15,4,0,15,1,4,4,8,9,8,9,12,12,14,15,15,14,15,0,12,8,9,7,8,7,7,5,5,2,8 4,15,1,0,1,1,4,8,9,9,9,14,14,0,14,15,14,12,11,9,7,8,7,7,7,6,4,5,2,8 15,1,3,3,6,8,7,8,10,9,13,0,15,0,15,14,13,10,10,8,8,8,7,6,6,3,2,2,0,8 0,0,0,1,1,4,4,7,7,7,9,9,10,13,0,15,0,14,13,10,8,9,7,8,7,7,4,5,1,8 11,10,10,10,6,8,6,5,4,4,4,2,3,2,1,1,15,13,10,12,10,12,10,11,11,11,12,12,13,9 10,12,10,9,8,5,4,5,3,3,3,1,2,1,14,15,12,12,10,11,10,11,11,11,11,13,11,12,13,9 0,12,9,10,11,8,8,7,5,5,4,3,3,2,1,1,1,14,13,9,11,10,12,12,13,11,13,13,11,9 13,10,10,8,9,6,6,5,3,4,2,1,1,0,14,14,11,10,10,11,10,9,14,11,11,11,13,12,12,9 15,10,9,9,8,7,8,6,4,4,3,2,2,1,1,1,15,12,12,9,10,11,11,11,10,12,12,12,12,9 7,8,8,8,8,9,9,8,11,10,13,12,12,13,14,14,15,14,0,14,1,0,0,2,0,2,3,1,5,0 6,6,8,7,9,9,8,9,12,11,12,12,13,14,15,0,14,0,0,0,0,0,0,2,1,4,3,4,5,0 3,6,7,7,8,8,8,9,9,10,9,11,11,12,13,13,0,14,15,15,0,0,1,0,1,2,4,4,2,0 8,8,9,8,8,9,9,12,12,12,14,14,14,0,15,15,0,0,0,1,2,2,3,3,4,4,5,5,5,0 6,8,9,7,9,9,9,10,11,12,12,14,14,15,15,14,0,0,0,0,0,2,0,3,2,3,4,3,5,0 0,2,0,1,11,7,7,8,7,7,9,15,13,15,14,15,13,5,4,5,4,3,5,11,10,11,11,10,12,10 1,1,1,1,1,9,8,7,8,8,7,8,8,15,14,14,13,14,11,5,4,5,2,5,10,11,10,10,11,10 2,1,1,1,10,7,8,7,8,8,7,13,14,15,15,14,14,14,11,5,4,5,4,3,7,10,10,10,11,10 2,1,1,1,9,7,8,8,8,7,8,7,0,14,15,15,14,13,8,4,5,6,3,5,9,11,10,11,10,10 1,1,2,1,8,7,7,8,8,8,7,14,15,14,14,13,14,7,6,4,4,4,3,4,5,10,11,11,11,10 7,9,10,12,10,12,12,12,14,12,15,14,0,0,2,1,1,1,2,2,1,1,2,2,3,2,2,3,1,11 9,10,10,10,11,12,11,12,12,11,0,2,2,1,2,2,2,2,3,0,2,3,2,2,2,2,3,3,2,11 11,12,10,11,12,12,10,12,2,1,5,1,2,3,2,2,4,2,3,2,2,2,3,3,2,2,4,5,2,11 8,12,10,10,10,12,10,13,10,11,10,12,0,4,2,1,4,2,4,1,4,2,3,2,4,2,3,2,2,11 6,13,12,12,10,12,13,10,13,12,12,13,0,2,1,2,2,2,1,3,0,2,3,1,3,2,2,3,2,11 9,10,11,10,11,10,10,9,6,6,4,4,5,3,3,3,3,14,14,12,13,13,13,13,12,14,6,8,3,12 10,9,11,10,10,11,9,12,7,7,4,5,4,4,3,3,2,2,2,0,12,13,12,13,13,12,13,13,12,12 8,9,10,9,11,11,10,12,10,12,7,5,5,4,4,4,4,3,4,3,1,0,13,13,14,12,13,14,11,12 10,9,11,9,11,10,10,11,10,10,5,6,4,4,4,4,4,3,3,3,2,0,12,14,12,13,12,12,13,12 9,10,10,10,10,11,10,12,8,8,5,4,5,3,4,3,2,3,3,15,12,13,12,13,12,13,13,14,13,12 4,6,6,6,8,8,8,13,15,14,15,14,14,14,12,12,10,9,9,7,8,8,7,6,6,5,4,4,3,15 5,6,7,7,8,8,9,9,14,14,15,14,14,14,12,13,10,9,8,8,7,7,7,6,6,5,3,3,2,15 8,7,9,8,8,9,8,9,12,10,14,15,15,13,0,14,14,15,13,15,13,15,10,13,11,9,9,9,7,15 7,8,8,8,13,14,14,14,14,15,13,14,12,14,11,13,10,11,10,8,8,8,8,8,7,8,6,8,6,15 4,6,6,8,7,8,8,9,12,12,15,15,15,14,12,13,10,10,10,9,7,8,8,6,7,6,4,5,3,15 8,8,9,8,8,8,6,10,6,8,10,6,9,6,10,8,8,8,8,8,8,8,8,8,9,8,8,8,9,14 8,8,8,8,8,8,10,6,9,8,8,8,6,10,6,6,10,6,8,8,8,8,8,8,8,8,8,8,7,14 8,6,10,8,8,8,8,8,9,9,6,10,8,8,8,8,8,8,9,6,10,8,8,8,6,10,8,8,10,14 8,10,6,8,10,6,8,8,8,8,8,8,6,10,8,9,6,10,8,10,6,10,6,9,8,8,8,8,8,14 3,14,6,8,8,6,8,8,8,8,8,8,10,5,10,8,8,8,6,10,8,8,8,9,8,8,8,8,9,14 3,14,1,2,14,1,0,2,14,0,2,14,0,2,14,0,0,0,2,14,1,14,2,0,0,0,0,1,14,13 3,14,1,0,0,0,2,14,1,14,2,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,13 0,2,14,14,2,0,0,0,0,2,14,1,2,14,1,0,0,1,0,0,0,0,0,0,0,0,14,0,0,13 1,1,1,2,14,1,0,2,14,2,14,1,1,14,2,1,14,2,0,0,0,2,14,1,2,14,1,0,14,13 1,2,14,2,0,0,14,2,0,14,2,0,2,14,1,2,14,1,0,2,14,0,0,0,0,0,1,0,0,13 2,1,1,1,1,9,10,10,10,11,11,12,11,12,11,10,12,7,8,7,8,0,0,15,0,0,0,0,0,1 8,8,7,7,6,3,3,0,14,15,13,12,11,11,10,9,10,8,8,7,5,4,1,12,12,14,15,15,0,2 3,0,4,1,6,8,8,12,10,11,10,11,11,10,10,11,12,11,11,14,10,11,12,11,12,12,11,10,11,1 2,2,3,2,2,2,1,4,1,3,1,4,2,13,10,12,12,12,10,13,11,10,12,12,12,10,11,12,10,1 2,2,3,3,1,3,3,1,3,2,1,5,8,11,11,12,11,12,10,10,12,11,12,11,12,10,12,10,14,1 2,2,2,2,2,1,2,1,2,2,2,2,2,4,10,10,12,11,12,10,12,12,10,12,11,13,12,12,11,1 5,2,1,1,0,14,15,11,10,9,10,10,10,10,9,8,8,7,7,7,2,2,15,12,13,13,0,14,0,2 5,2,2,2,0,0,14,12,12,10,13,10,11,10,10,10,11,9,10,9,8,10,8,8,8,1,15,0,0,2 0,0,15,14,12,12,11,11,10,10,10,9,9,9,9,8,8,7,8,1,0,0,0,0,0,0,0,0,15,2 6,0,0,14,14,8,11,9,9,8,8,8,10,7,15,15,15,15,15,14,9,10,9,8,8,8,8,10,8,3 5,15,12,0,12,8,9,9,9,10,9,8,8,1,14,14,14,14,14,11,10,10,10,8,10,8,9,8,8,3 0,7,4,2,0,0,0,15,14,15,11,11,10,8,8,8,8,3,0,15,0,15,15,14,13,10,8,9,7,3 6,1,0,0,2,15,0,14,15,13,14,13,10,12,11,11,9,10,8,10,10,10,7,8,8,8,8,9,6,3 1,2,15,1,13,12,12,11,10,9,10,7,7,9,3,2,14,0,0,14,12,13,9,10,8,8,8,8,2,3 7,10,12,11,13,11,13,9,0,15,1,15,0,0,0,0,15,15,0,15,7,6,1,4,3,14,12,10,12,4 6,10,13,12,11,11,11,2,14,15,1,15,0,1,15,15,5,3,3,4,3,3,11,13,12,13,11,11,12,4 5,12,11,11,10,11,4,15,0,0,0,0,0,0,0,0,15,4,4,4,4,4,10,12,11,12,11,12,10,4 11,11,1,0,0,0,14,2,14,2,5,3,3,4,4,2,4,11,12,10,12,12,12,12,12,12,12,12,12,4 8,7,8,8,8,8,12,9,0,0,0,0,0,15,15,1,10,12,13,10,7,8,8,8,8,8,8,8,7,5 2,8,7,7,8,8,7,11,11,12,10,3,1,14,1,0,0,0,15,1,10,11,11,13,8,7,8,7,8,5 7,8,8,9,8,8,8,6,13,12,9,13,12,1,15,0,15,0,0,1,15,2,10,13,12,7,8,8,8,5 8,8,8,8,7,8,7,13,11,10,1,15,0,15,0,15,2,11,10,14,7,8,8,8,8,8,8,8,8,5 8,8,8,8,7,8,7,13,11,0,1,15,0,1,0,8,12,12,12,7,7,8,6,8,7,9,7,8,8,5 6,7,9,8,8,9,8,8,8,8,9,10,10,9,10,10,12,11,12,0,0,0,1,3,4,4,5,4,5,6 8,8,8,8,8,9,8,9,8,10,9,9,10,9,10,10,12,12,12,15,0,1,0,2,3,2,6,4,6,6 6,9,7,8,8,8,9,7,9,8,10,9,10,9,10,10,12,12,11,14,14,0,14,0,0,3,4,4,5,6 13,9,6,9,6,9,7,10,7,8,10,8,9,8,9,9,9,10,12,10,12,12,12,0,0,1,4,4,7,6 8,7,8,8,8,8,8,8,9,8,9,9,8,10,11,11,14,0,15,0,4,4,4,6,4,7,5,6,7,6 8,2,0,0,0,0,0,0,0,0,0,1,0,0,1,5,13,10,10,11,13,12,14,10,13,9,13,11,11,7 4,14,0,0,14,0,0,0,15,0,0,15,0,0,0,0,0,0,0,6,13,12,12,10,12,12,10,12,11,7 3,14,0,0,0,0,14,1,15,15,2,15,0,0,0,1,0,0,1,12,13,12,14,10,12,12,12,10,13,7 4,15,1,15,1,0,0,15,1,0,0,0,0,0,0,0,1,0,6,12,10,12,12,10,12,12,11,10,12,7 7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,1,8,10,10,11,11,12,9,12,10,7 3,7,7,7,7,8,7,8,10,11,15,14,15,14,14,14,14,11,12,7,8,7,8,5,6,1,2,1,3,8 6,8,7,8,6,9,8,13,0,14,0,14,15,15,14,14,9,8,8,8,6,7,2,1,1,0,1,0,2,8 8,7,7,7,7,9,8,14,15,14,0,14,15,14,14,14,8,8,8,7,7,7,1,0,1,1,2,1,0,8 6,7,8,8,8,8,8,9,14,13,14,14,14,12,14,14,10,7,8,7,8,7,8,5,5,1,0,0,1,8 8,8,8,8,8,9,10,14,15,15,14,15,15,14,13,14,9,10,9,6,8,6,3,1,2,1,1,2,1,8 10,8,8,7,8,4,4,2,1,1,15,13,12,11,10,11,11,12,11,12,12,13,7,7,8,8,7,8,5,9 8,9,7,8,8,7,8,7,8,6,1,4,2,1,14,0,15,15,0,15,10,11,10,12,12,10,12,11,11,9 7,8,7,8,8,7,8,8,2,3,4,4,5,15,0,14,0,15,0,0,15,14,10,12,12,11,11,11,11,9 8,9,7,9,7,8,9,8,2,4,1,2,3,14,0,15,0,15,0,10,11,12,12,11,12,10,11,11,11,9 10,6,8,7,8,7,8,2,3,3,4,4,5,15,0,15,0,0,0,10,11,12,11,11,12,12,10,11,12,9 7,7,8,8,12,11,12,9,13,12,11,12,12,13,14,14,14,0,15,0,1,0,5,4,4,3,4,3,6,0 8,12,12,12,10,14,15,14,15,0,14,0,0,1,0,0,1,1,3,4,4,4,4,6,5,8,6,6,8,0 4,7,7,7,8,9,8,11,11,12,11,13,13,14,15,14,0,0,0,1,1,1,2,4,3,4,5,5,6,0 7,4,8,6,8,7,7,7,8,6,10,13,11,12,13,14,15,15,0,15,0,15,0,0,15,2,4,4,4,0 8,9,7,7,6,7,8,5,8,8,9,8,9,11,13,12,14,14,0,14,15,0,0,0,0,0,1,0,5,0 2,2,2,1,4,12,13,12,13,12,6,6,6,7,8,7,15,0,0,0,0,0,0,15,0,15,0,10,8,10 5,3,5,4,2,13,14,14,13,13,6,8,7,7,7,8,7,15,15,0,0,0,0,0,0,8,8,8,9,10 5,2,3,3,1,12,13,14,11,12,6,6,6,7,7,6,15,0,0,15,0,0,15,0,0,8,9,8,8,10 2,6,2,2,2,13,13,13,13,6,7,7,8,7,8,7,0,0,0,0,15,0,0,0,15,0,8,8,10,10 4,2,4,4,3,12,14,13,13,13,6,7,7,6,8,7,0,0,0,0,0,0,15,0,0,12,8,8,9,10 10,10,12,11,11,11,12,11,10,12,10,13,0,0,0,0,1,0,1,1,0,1,0,2,1,0,1,1,1,11 6,11,10,10,11,11,10,11,10,10,11,10,11,11,9,12,9,11,10,9,11,14,2,4,3,6,5,7,7,11 7,13,10,12,9,12,10,12,10,12,10,15,0,15,1,0,0,0,0,0,0,0,0,1,15,2,15,1,15,11 10,13,12,11,12,12,12,1,0,0,0,1,0,2,0,0,14,2,0,0,0,0,2,15,0,0,0,1,14,11 11,10,11,10,10,12,11,1,14,1,14,0,0,2,15,1,14,1,0,2,15,2,14,0,0,1,1,15,2,11 9,10,10,10,10,10,11,9,10,10,5,4,4,5,4,6,4,15,15,15,14,15,14,14,0,13,15,14,15,12 9,11,10,10,10,9,9,10,10,10,5,4,4,5,4,4,5,3,3,14,14,15,13,14,13,14,14,14,14,12 10,12,10,12,9,10,9,10,10,10,4,4,4,3,4,3,5,4,4,4,13,14,12,15,14,14,14,14,14,12 8,9,9,8,10,8,9,9,9,8,5,3,5,3,4,5,1,14,14,14,14,14,14,14,14,15,14,14,14,12 5,9,9,10,8,10,8,10,9,6,4,4,5,3,4,5,4,0,13,15,14,13,14,14,15,13,14,13,14,12 8,8,10,12,12,12,13,12,14,11,14,14,0,13,0,14,12,13,12,12,10,9,7,8,8,6,8,7,0,15 6,7,7,8,6,9,8,9,11,10,12,14,14,0,15,0,14,0,15,14,15,0,12,7,8,8,8,7,7,15 15,3,6,8,7,7,9,6,10,10,12,12,14,12,14,14,15,15,15,14,10,10,9,8,8,8,7,7,7,15 9,8,10,10,13,12,13,14,14,13,0,14,14,0,15,14,0,14,14,11,11,11,8,9,8,8,8,8,8,15 6,7,7,6,8,8,8,9,12,11,15,14,14,15,15,0,0,14,0,0,0,0,0,0,15,14,14,12,10,15 6,8,6,9,6,8,8,8,8,8,8,8,6,9,6,8,8,8,8,8,6,6,9,6,6,8,2,0,0,14 8,8,8,6,8,8,9,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,1,14 8,8,8,6,8,8,8,8,8,6,8,8,8,8,6,8,8,8,8,8,8,6,8,8,8,8,8,1,14,14 6,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,10,6,6,10,8,8,8,14 9,6,8,8,8,8,6,8,8,6,8,8,8,8,8,8,8,6,8,8,8,8,8,8,8,8,0,14,2,14 1,1,1,2,14,1,2,14,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13 2,14,1,0,0,0,2,14,1,1,0,1,14,2,14,14,2,14,0,0,0,0,0,0,0,0,6,8,15,13 8,0,0,0,0,0,0,0,0,14,2,14,1,0,0,0,0,14,0,0,0,0,0,0,0,0,14,0,15,13 6,9,1,0,0,0,2,14,1,0,0,1,0,0,0,0,0,1,0,0,0,1,14,2,0,0,14,0,15,13 2,0,0,0,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,0,0,0,2,14,14,2,14,0,0,13 4,4,2,2,15,14,13,13,11,12,10,11,11,10,8,9,8,8,7,8,4,5,1,15,0,13,14,14,15,2 10,9,0,0,0,0,15,1,15,15,3,4,3,4,3,2,3,10,11,11,11,11,10,12,10,12,11,12,12,4 3,2,4,4,4,4,4,4,3,3,2,4,6,2,12,12,9,11,11,10,12,12,10,12,11,11,11,10,13,1 0,15,1,0,2,1,2,1,2,2,2,2,3,3,5,8,10,11,10,12,9,9,10,10,9,13,9,11,9,1 11,1,4,3,3,4,2,4,2,3,4,4,4,4,4,3,11,12,12,12,10,9,13,10,12,12,10,10,12,1 15,1,0,0,1,1,0,2,2,2,4,4,5,4,4,4,12,10,10,11,11,10,12,8,10,11,10,10,10,1 0,15,2,0,0,2,1,2,1,2,3,3,4,4,6,10,12,10,12,10,9,10,11,10,12,10,10,10,11,1 3,2,0,0,15,13,13,11,12,11,10,10,10,8,8,8,6,4,4,3,1,1,0,0,0,0,13,14,11,2 5,5,2,2,14,0,0,14,13,12,13,12,12,12,11,12,10,9,10,7,6,6,3,2,2,0,15,1,12,2 14,15,13,12,12,12,11,11,10,10,9,8,8,8,7,7,6,5,4,4,0,0,15,15,14,15,14,15,14,2 0,1,14,14,10,11,12,10,10,10,8,9,8,9,7,7,8,5,5,3,2,2,0,0,0,15,15,15,13,2 0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,14,13,0,13,11,8,10,8,10,1,0,2,13 11,0,0,0,0,0,0,0,0,14,1,14,0,0,0,1,14,0,0,0,0,0,0,0,0,0,0,0,1,13 0,0,0,0,0,0,0,0,0,2,14,1,0,0,0,0,0,0,0,2,14,0,0,0,14,2,14,14,1,13 1,0,0,2,14,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,13,13 0,0,14,2,14,1,0,0,0,2,13,2,0,0,1,2,14,1,2,14,1,2,14,1,0,0,0,15,1,13 8,8,8,8,8,6,8,8,8,6,10,6,6,8,8,6,10,6,8,8,8,8,8,8,8,8,6,8,8,14 8,8,8,8,8,8,8,8,9,6,10,8,8,8,8,9,8,8,9,6,8,9,6,8,8,8,8,9,7,14 6,9,6,8,8,6,8,8,8,6,9,6,6,9,6,8,6,8,6,9,6,6,9,6,8,6,4,5,1,14 6,10,6,6,10,6,6,10,6,8,8,6,8,6,9,6,8,6,8,8,6,8,8,6,6,6,6,8,5,14 9,8,8,9,6,8,9,6,8,9,6,8,8,6,9,6,8,6,8,6,8,6,8,6,6,8,5,4,4,14 9,12,11,12,12,12,11,13,11,14,11,2,2,2,2,2,1,2,2,4,2,1,2,2,1,2,1,2,0,11 6,12,10,12,12,12,12,12,12,11,13,12,12,3,1,2,2,1,3,2,1,2,3,3,2,2,2,2,0,11 10,13,10,12,12,12,10,14,11,10,13,2,0,4,1,2,2,2,3,1,3,3,2,2,2,3,2,2,2,11 4,12,0,12,13,14,12,12,13,13,2,4,3,2,2,2,3,3,3,2,3,2,4,2,2,3,3,1,4,11 0,15,15,14,13,10,12,9,7,8,8,7,2,15,0,15,14,13,13,12,11,10,7,8,8,8,8,7,7,3 2,15,13,13,9,8,8,7,2,0,0,0,0,14,14,13,13,12,12,8,8,8,8,7,8,7,8,7,8,3 2,0,14,15,13,10,10,7,7,7,0,0,0,0,15,14,13,13,13,11,10,9,8,9,8,8,8,7,7,3 1,0,14,13,11,9,10,7,1,0,1,15,15,12,13,12,12,10,12,10,10,9,8,8,8,7,8,8,6,3 8,1,14,14,13,11,12,9,6,6,3,15,0,15,14,13,12,11,11,10,8,9,8,9,8,9,6,7,6,3 10,11,11,11,12,11,10,0,0,0,0,0,15,5,3,4,4,6,10,12,11,12,12,12,12,11,13,11,12,4 8,13,11,12,12,12,12,11,1,15,1,0,0,0,0,5,5,5,5,5,6,6,12,11,11,12,12,12,13,4 8,12,10,11,12,12,4,15,0,0,0,0,15,0,0,0,8,5,6,4,6,5,11,10,11,10,12,11,12,4 10,10,12,12,11,12,11,1,15,0,0,15,0,0,14,7,5,4,5,4,7,12,11,12,11,13,11,12,12,4 11,11,10,10,13,10,3,0,0,0,0,0,0,15,6,5,5,5,4,6,12,11,12,11,12,10,12,12,11,4 6,8,8,8,6,9,7,12,9,11,6,2,0,2,14,12,12,13,12,12,11,12,12,10,12,10,9,10,7,5 7,7,8,6,9,12,11,11,0,3,2,15,0,15,14,14,12,14,14,12,11,11,11,10,8,10,7,8,8,5 8,8,8,8,5,10,11,10,11,11,14,0,0,0,14,14,13,12,13,12,12,12,10,12,11,7,8,6,8,5 8,8,7,8,6,6,8,11,10,10,11,2,0,0,14,13,12,13,11,13,12,12,10,12,10,11,9,8,4,5 7,7,7,8,6,12,11,10,3,2,15,0,0,0,14,15,13,11,12,11,9,9,8,8,8,8,7,6,7,5 6,6,7,7,8,8,9,10,11,10,12,12,12,14,14,0,15,0,0,15,2,3,7,7,7,8,7,8,9,6 6,7,8,8,8,9,9,11,11,10,12,14,13,15,15,15,0,15,15,0,3,4,5,6,6,7,8,7,9,6 5,9,8,6,9,11,12,11,14,13,15,15,15,15,0,0,1,0,2,4,6,6,8,7,8,8,8,9,9,6 7,8,8,9,9,10,11,12,12,12,13,12,13,14,15,14,0,0,0,0,2,1,5,5,5,6,5,5,9,6 6,8,8,8,9,11,10,12,12,13,12,14,14,15,15,14,1,0,0,2,6,5,7,6,7,6,8,7,7,6 0,0,0,0,0,0,0,0,0,0,0,14,15,4,10,11,11,12,12,12,12,12,10,12,12,12,10,12,12,7 1,13,0,0,14,1,0,9,11,10,9,12,10,14,10,10,13,11,10,12,10,11,10,11,11,10,12,10,13,7 0,0,0,0,14,0,0,0,0,14,0,10,10,12,12,10,12,12,11,12,12,11,12,12,11,10,12,12,10,7 0,0,0,0,15,0,15,2,14,0,9,12,9,14,10,12,10,12,10,12,10,11,12,11,12,12,12,10,12,7 0,14,1,0,0,0,14,1,10,10,11,12,10,13,11,10,13,10,12,10,12,10,12,12,12,10,11,12,10,7 8,7,4,4,2,0,0,14,12,13,10,8,9,6,9,8,12,15,14,15,0,0,0,1,2,5,7,6,7,8 9,6,6,6,2,0,2,15,14,14,10,8,9,9,7,8,10,12,12,14,14,15,0,0,0,1,4,4,6,8 8,7,6,5,2,0,1,0,14,14,10,8,9,8,8,8,9,13,11,15,15,0,14,1,1,2,5,5,8,8 14,8,8,8,6,6,7,5,4,4,3,2,3,1,1,1,0,14,13,12,10,11,10,11,9,13,10,12,10,9 6,5,6,4,2,4,2,0,2,0,0,14,14,9,12,11,10,12,11,10,11,9,12,10,11,11,11,12,11,9 8,9,6,8,6,6,5,4,2,2,1,2,1,1,15,15,12,10,12,10,12,12,11,10,12,10,11,11,11,9 8,6,8,8,7,6,6,5,3,4,2,2,2,1,1,1,15,0,0,12,10,10,12,10,12,10,11,10,10,9 9,7,9,8,8,7,8,6,3,4,2,0,1,0,0,0,10,11,12,11,10,11,11,12,12,12,12,12,14,9 0,3,4,3,4,6,6,6,8,8,8,8,8,8,10,9,12,12,11,14,11,13,13,14,14,15,0,15,0,0 2,6,4,3,6,7,6,8,8,9,11,10,12,12,12,12,12,13,13,14,15,0,14,3,2,3,4,4,3,0 3,4,5,4,6,7,8,6,9,8,10,10,10,12,12,12,12,13,13,14,15,0,15,1,1,4,3,4,4,0 2,4,4,4,4,7,6,9,8,8,10,10,11,10,12,12,12,13,14,14,0,15,1,2,2,5,4,5,4,0 4,4,5,4,6,8,8,8,10,8,10,11,10,12,12,12,12,13,13,14,15,0,15,0,2,3,2,4,2,0 7,7,8,8,7,9,8,9,12,12,14,0,15,0,0,0,15,15,13,10,12,12,9,8,9,8,8,7,8,15 7,8,8,7,8,10,12,13,15,15,15,15,15,15,0,15,14,11,11,12,10,10,8,8,8,8,7,7,6,15 8,7,9,10,12,14,15,0,0,0,14,0,0,0,0,14,15,13,13,12,10,10,8,8,8,9,7,8,7,15 6,7,7,7,8,8,9,8,12,12,0,0,15,0,0,15,0,14,14,13,11,12,10,10,9,8,8,7,8,15 7,8,8,8,8,11,12,15,0,0,0,15,0,0,14,13,0,11,11,11,8,8,8,8,8,8,8,8,7,15 8,3,10,10,9,10,10,10,9,10,10,6,4,4,3,3,4,3,3,3,13,13,14,14,14,13,14,13,14,12 8,10,10,11,10,11,11,10,11,10,11,4,4,4,4,2,5,2,4,3,12,13,12,13,12,13,13,14,13,12 12,10,11,10,11,10,11,12,10,12,11,9,5,3,4,4,4,3,4,2,3,3,13,15,13,13,14,13,14,12 11,9,11,11,9,11,10,0,3,4,4,3,4,3,3,3,3,12,12,12,12,12,11,13,12,14,12,14,12,12 8,12,10,10,11,10,11,11,12,11,12,11,12,4,5,4,4,3,4,4,3,4,13,11,12,13,13,13,14,12 0,3,2,3,12,12,12,13,13,13,6,6,6,6,6,6,7,0,0,0,0,0,0,0,0,9,9,9,8,10 1,2,4,2,11,12,12,11,11,12,4,5,5,5,5,6,15,0,0,0,15,15,0,8,9,8,9,8,9,10 1,4,1,3,11,12,12,11,12,13,5,6,6,6,6,8,0,15,15,1,15,0,0,11,8,10,8,9,9,10 2,2,3,4,12,12,12,12,11,12,4,7,5,7,5,6,14,1,0,0,0,0,15,15,15,8,10,8,9,10 4,3,3,2,4,1,13,12,12,13,12,10,6,6,6,6,7,15,15,0,0,0,0,0,0,15,9,10,8,10 3,1,0,15,14,12,12,11,10,10,10,9,9,8,8,8,6,6,6,4,0,0,14,14,14,14,0,15,0,2 1,2,5,4,6,8,8,8,9,9,11,15,14,15,14,14,15,14,13,9,7,8,8,7,6,5,2,2,0,8 0,0,2,1,2,4,3,4,8,6,7,9,8,10,12,11,14,14,14,15,13,14,10,9,8,9,7,8,6,8 12,9,12,10,14,11,14,1,0,0,14,2,0,3,0,1,2,1,1,2,1,2,15,4,0,2,0,0,2,11 2,2,2,0,3,2,3,1,4,3,11,14,12,10,11,12,12,12,10,14,10,12,12,12,10,14,10,10,13,1 2,3,11,12,12,10,10,13,9,10,12,10,12,12,12,12,10,12,10,12,12,10,12,10,10,12,10,11,11,1 2,0,2,1,2,2,2,2,3,2,4,2,2,11,12,10,12,12,12,12,10,11,14,11,11,11,11,12,10,1 2,2,2,2,2,2,2,4,2,4,0,10,12,13,10,11,10,12,11,12,11,12,11,10,11,10,12,12,10,1 2,15,2,1,1,2,2,2,2,3,0,12,10,12,12,11,12,12,12,10,12,11,11,12,11,12,10,10,10,1 4,3,0,1,14,13,12,11,11,12,11,10,10,8,7,7,8,5,6,3,4,3,0,13,14,12,13,14,0,2 4,1,15,14,13,12,12,12,11,12,10,8,8,9,7,8,7,4,5,2,0,0,14,13,13,14,1,0,2,2 6,5,4,4,0,14,14,13,13,12,12,11,10,10,8,8,8,6,5,6,1,1,14,14,14,13,15,15,2,2 6,3,2,1,15,14,14,12,12,12,10,10,10,9,8,8,7,6,5,4,2,1,14,13,13,13,0,1,0,2 4,1,13,15,13,11,11,12,10,11,9,8,8,8,6,6,6,3,4,0,15,15,14,13,13,14,1,1,2,2 1,0,14,14,13,11,11,10,9,8,9,7,8,7,6,2,0,0,0,0,13,13,9,10,9,8,8,8,8,3 14,13,12,12,10,9,9,8,8,9,7,2,2,0,0,15,0,14,13,13,10,11,9,9,8,8,8,8,7,3 1,15,13,12,10,9,8,9,8,8,0,0,0,0,14,14,12,10,11,9,8,8,7,7,8,7,6,7,4,3 0,14,13,10,11,9,10,8,8,9,7,0,1,0,0,15,13,11,11,11,8,8,7,8,8,8,7,8,5,3 1,15,14,15,11,10,9,9,8,8,8,7,1,0,0,0,0,14,11,13,8,9,8,8,8,7,8,8,6,3 10,9,9,10,9,9,9,14,0,0,0,0,0,13,1,1,2,4,4,4,6,7,12,11,12,12,12,12,12,4 9,10,10,10,10,10,10,9,0,0,15,0,0,0,15,15,15,2,2,5,5,5,5,10,8,11,12,11,11,4 10,9,10,9,9,9,0,0,15,0,15,0,0,15,0,14,4,4,4,3,5,6,6,11,11,11,11,10,12,4 9,8,9,8,9,0,0,15,15,0,14,0,15,0,15,15,0,2,4,3,6,5,9,12,11,12,11,11,10,4 10,9,10,10,9,10,10,1,14,0,0,0,0,15,0,15,0,4,4,4,4,5,11,12,11,11,11,11,9,4 8,8,7,8,7,12,12,9,12,10,2,0,2,14,14,13,10,11,10,8,6,7,7,7,7,6,5,4,4,5 6,8,7,8,6,13,11,13,9,4,2,14,15,14,12,13,10,8,8,7,6,7,6,6,5,5,4,4,3,5 8,7,7,6,11,11,10,2,1,0,0,14,0,14,12,12,10,10,8,10,7,8,7,7,7,6,6,6,5,5 8,8,8,7,8,7,11,12,12,11,3,1,2,15,15,15,13,10,10,8,8,8,8,7,7,6,2,2,4,5 8,7,10,11,12,10,11,5,1,1,0,0,15,1,14,0,14,12,11,11,8,9,6,8,7,7,7,7,6,5 9,8,11,9,10,10,10,10,12,10,14,14,14,0,0,0,15,1,2,4,5,5,4,6,6,7,8,6,9,6 8,8,9,8,9,10,11,10,13,12,13,14,14,15,15,0,15,2,2,5,4,5,5,6,5,6,7,7,9,6 9,9,9,10,11,11,11,12,12,13,14,15,14,15,0,0,0,1,2,6,5,5,6,6,6,7,7,6,7,6 7,9,8,9,9,11,12,12,13,13,13,14,14,15,0,0,0,2,2,4,5,5,6,7,6,7,8,6,9,6 10,8,9,10,9,12,11,12,13,12,14,14,14,14,0,15,1,4,3,5,4,6,5,6,5,6,7,6,9,6 1,14,2,0,0,0,0,0,0,0,7,10,10,10,9,10,9,10,10,9,9,11,8,11,9,10,10,10,10,7 0,0,0,0,0,0,0,14,1,0,0,0,14,8,11,10,10,10,10,8,11,10,9,10,8,10,8,10,8,7 0,0,0,0,0,1,0,0,1,0,0,0,1,14,0,1,15,8,10,9,10,10,10,10,10,10,9,9,9,7 0,2,15,0,0,0,0,2,14,10,10,8,11,9,10,9,10,10,10,9,10,8,9,10,8,10,8,9,10,7 0,1,0,0,0,0,0,0,15,0,0,0,0,15,8,9,10,9,9,10,10,9,10,8,10,8,10,9,9,7 0,1,4,2,5,8,7,10,11,11,13,15,15,0,14,15,13,9,9,7,8,8,7,7,6,6,3,4,0,8 1,3,4,5,8,10,9,12,13,13,1,14,14,14,10,10,7,8,8,8,6,7,6,3,4,1,15,0,0,8 0,2,3,4,5,9,9,10,11,12,14,15,15,15,14,13,9,8,8,8,7,7,6,6,6,2,1,1,0,8 1,3,6,6,8,9,8,10,13,13,0,15,0,14,15,15,10,8,8,7,8,7,6,4,5,3,1,1,0,8 0,2,3,4,7,8,9,9,12,13,0,14,14,15,12,13,8,8,7,8,7,6,8,5,6,2,0,0,0,8 6,7,9,8,10,13,12,13,15,14,0,0,1,0,3,2,4,5,5,6,9,0,13,11,11,12,11,10,13,9 5,7,8,8,10,11,12,12,14,14,1,0,1,1,3,3,5,5,6,7,9,8,15,11,12,10,11,10,11,9 8,8,10,11,10,13,13,0,0,15,1,0,1,3,4,4,5,8,8,8,15,12,12,11,10,10,10,10,10,9 6,8,10,10,10,12,11,12,14,15,15,0,1,2,4,3,4,5,4,8,0,0,10,10,11,11,10,11,11,9 8,8,10,9,9,12,12,13,14,15,14,0,15,1,4,4,3,4,6,3,12,12,10,12,12,11,11,11,11,9 3,6,4,5,6,9,9,8,10,10,11,12,12,11,14,12,12,14,13,15,0,0,14,1,2,3,4,4,4,0 4,4,6,6,8,7,8,6,10,10,12,12,12,13,13,12,14,15,14,15,0,15,1,3,4,3,4,4,3,0 4,4,6,5,8,8,8,10,10,11,11,12,12,11,13,12,13,13,14,15,0,15,3,3,4,5,4,5,5,0 4,4,5,5,8,8,9,9,12,11,11,12,12,11,13,12,13,14,14,0,0,0,2,4,3,4,4,5,5,0 3,4,4,4,4,7,6,8,10,10,11,11,12,12,12,12,13,13,12,13,0,0,15,2,2,3,4,3,4,0 3,2,3,2,4,12,13,12,12,11,12,6,5,6,6,5,6,15,0,0,0,0,15,8,8,9,8,9,9,10 2,2,2,1,3,12,13,12,12,12,11,7,5,5,5,5,7,7,15,0,15,0,15,0,14,0,8,8,10,10 3,2,3,2,0,12,12,12,11,11,12,5,4,6,5,5,11,0,15,0,15,15,0,9,9,9,9,8,9,10 2,2,2,3,13,12,12,12,12,12,6,5,5,5,6,7,14,0,0,0,15,0,15,8,8,10,9,9,9,10 2,2,3,2,13,11,12,10,12,11,2,5,5,5,5,4,6,15,0,0,0,0,0,0,1,9,8,9,8,10 9,10,9,10,10,10,12,10,14,15,0,0,15,2,0,15,2,0,0,1,0,0,1,0,1,0,2,2,1,11 8,12,8,10,10,10,10,12,9,10,10,0,15,2,0,0,1,0,0,1,0,1,1,0,1,0,1,2,0,11 12,12,12,10,13,14,0,14,1,1,0,3,0,2,2,2,1,3,3,1,4,2,4,1,2,2,2,1,4,11 12,10,13,11,13,0,0,0,0,1,0,0,1,0,2,0,2,2,2,1,3,3,1,4,2,5,2,2,4,11 14,9,12,11,10,14,12,0,15,15,2,0,1,0,3,2,3,1,2,3,1,2,2,2,3,2,2,2,3,11 8,11,11,10,11,10,10,10,8,8,7,5,5,5,4,3,4,3,3,2,14,14,13,13,12,13,13,13,14,12 10,9,10,11,10,10,11,9,4,4,3,4,3,4,2,3,2,3,1,11,12,10,12,12,12,12,13,12,13,12 10,10,10,11,9,12,13,11,6,7,4,5,4,4,3,3,3,2,2,11,13,12,12,12,12,13,12,12,14,12 10,12,10,10,12,10,11,10,8,7,5,4,5,4,4,4,2,3,2,0,12,13,11,13,12,13,12,13,13,12 10,10,10,10,10,10,10,11,9,8,4,4,5,3,4,3,4,2,3,3,13,12,13,12,12,13,13,13,13,12 5,6,8,9,11,12,11,14,15,0,15,14,15,14,12,12,9,8,8,7,7,8,6,7,7,6,5,5,5,15 6,8,9,9,10,12,11,13,14,14,0,15,15,15,14,13,10,8,8,8,7,8,6,7,7,6,6,5,4,15 8,8,8,9,9,10,9,12,11,12,10,14,14,1,13,0,13,15,12,13,15,12,14,11,13,10,11,10,8,15 5,7,8,8,10,11,12,14,0,0,15,15,15,15,12,12,10,10,9,8,8,9,6,8,7,7,5,5,3,15 6,7,7,8,6,9,7,9,12,10,11,13,12,14,0,15,15,15,14,0,14,15,0,12,11,14,10,10,8,15 9,6,8,8,8,8,6,8,8,9,6,8,6,9,6,8,6,9,6,8,8,6,8,8,6,6,6,6,7,14 8,10,6,8,8,9,8,8,8,8,8,8,10,6,9,10,6,9,8,8,8,8,8,8,10,6,9,8,8,14 8,8,6,8,8,8,8,8,8,6,10,6,8,8,8,8,6,9,8,8,8,6,8,8,6,9,6,8,8,14 9,6,8,8,8,6,8,8,8,8,8,8,6,10,6,6,10,8,8,8,8,8,8,8,8,8,8,8,6,14 6,10,6,8,8,8,6,8,8,9,6,8,6,10,6,8,8,8,6,8,8,6,10,6,8,8,8,8,6,14 0,2,14,0,0,1,0,0,0,0,2,14,1,14,2,0,0,1,0,0,0,0,0,1,0,0,0,0,15,13 0,0,0,2,14,1,0,0,0,0,2,14,0,0,0,0,0,0,14,2,0,0,0,0,0,0,0,14,14,13 2,14,2,1,14,1,0,0,14,0,0,14,1,14,0,0,0,0,1,14,1,14,1,14,1,14,5,6,15,13 2,14,1,0,0,0,2,14,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,14,2,0,0,13 0,0,0,0,2,14,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,13 0,0,1,0,4,2,4,2,5,4,4,12,12,12,10,10,12,10,12,10,12,12,10,12,11,12,12,11,13,1 0,1,3,3,2,4,5,2,5,4,8,13,11,12,12,12,12,14,12,12,12,12,10,13,12,10,13,12,12,1 2,2,2,4,1,4,2,6,3,12,10,12,12,12,11,12,10,12,11,12,12,12,9,12,10,13,11,12,11,1 1,4,3,2,4,4,2,5,3,4,2,4,4,13,10,12,10,12,12,10,12,11,13,10,12,10,13,12,12,1 2,5,2,3,4,4,4,11,10,12,10,12,11,10,12,12,12,10,12,12,12,10,13,11,12,10,12,12,12,1 2,4,4,4,5,7,7,10,10,10,11,11,11,12,12,12,13,14,15,15,0,1,5,3,4,3,4,4,3,0 4,4,6,7,10,8,10,9,11,10,12,11,12,11,12,12,13,0,0,15,1,1,3,2,4,3,4,4,2,0 3,4,5,6,6,9,8,10,10,11,10,11,11,10,12,10,14,13,14,0,0,15,2,3,2,4,3,4,3,0 4,5,5,6,7,9,8,10,10,11,11,11,11,12,12,11,13,15,14,0,0,1,2,3,4,4,4,4,4,0 2,5,5,6,7,8,10,8,10,9,12,11,11,12,12,12,12,13,13,0,0,0,1,3,3,2,4,3,5,0 4,3,15,0,13,12,13,12,10,12,9,9,8,8,8,8,7,5,6,3,14,15,14,14,14,14,15,15,14,2 3,15,15,14,14,12,13,10,11,11,10,8,9,8,7,8,7,4,4,2,0,15,14,15,14,14,14,14,0,2 3,1,15,0,15,14,15,14,13,13,10,12,10,12,8,9,7,8,8,6,2,2,15,14,14,13,15,13,0,2 5,3,2,0,0,14,14,13,13,12,12,10,10,10,9,9,8,8,7,5,2,2,14,14,14,15,14,15,15,2 6,2,0,0,15,14,15,12,12,12,11,10,10,9,9,9,9,7,8,7,4,3,1,15,0,14,14,14,14,2 6,2,0,0,14,14,13,12,11,10,10,8,9,8,4,3,0,0,0,15,14,14,12,10,11,8,9,8,8,3 3,1,15,0,14,14,14,11,10,11,9,9,8,9,6,7,1,15,0,1,14,0,14,10,11,9,8,8,7,3 1,15,15,15,13,11,11,10,8,9,8,8,9,5,0,0,1,15,15,15,13,14,10,10,10,8,7,8,8,3 2,1,14,0,13,11,12,11,9,9,8,8,7,8,2,1,0,15,0,15,13,14,10,10,9,8,8,8,8,3 4,1,15,0,15,13,13,12,11,10,9,8,8,9,6,4,1,15,0,15,14,14,11,9,10,8,8,8,8,3 10,0,1,0,0,0,0,14,0,0,12,5,5,2,4,4,4,12,12,12,11,12,12,11,11,13,10,11,13,4 12,10,0,0,0,15,0,14,15,15,6,2,4,4,4,3,6,12,10,11,11,11,11,12,11,11,12,11,12,4 10,12,9,3,15,0,0,15,0,0,14,3,4,4,3,4,4,4,4,12,12,11,12,12,12,11,12,10,13,4 12,10,11,14,1,0,0,0,0,0,14,0,6,3,4,3,4,4,4,12,13,12,11,12,11,11,11,11,11,4 12,10,12,12,10,1,0,15,0,0,15,0,14,5,5,4,4,4,4,0,11,11,12,10,10,12,11,11,11,4 8,7,7,6,11,12,11,12,10,10,1,15,0,0,15,0,14,14,15,13,12,11,8,8,8,8,7,8,8,5 8,6,8,6,8,13,12,13,11,11,2,14,0,0,0,15,0,14,14,12,12,12,9,8,8,7,8,7,9,5 8,7,8,8,6,11,10,11,12,10,1,0,0,0,15,0,0,14,0,14,11,12,9,8,8,8,8,8,8,5 7,8,8,7,8,8,9,12,10,11,11,3,2,15,0,0,0,14,15,13,0,12,12,8,7,8,8,8,7,5 8,8,8,7,9,6,7,10,12,13,10,12,10,2,0,1,0,0,0,15,14,13,13,10,10,8,8,9,8,5 7,8,9,9,10,10,11,9,12,10,13,12,14,15,15,0,15,0,0,2,4,4,4,6,6,8,8,8,8,6 9,7,10,10,10,9,9,12,11,12,12,14,15,0,0,15,1,0,2,2,5,4,6,7,8,7,8,8,8,6 8,8,9,9,10,10,10,10,10,11,13,14,14,0,15,0,15,2,1,2,4,4,6,8,6,9,8,9,10,6 9,7,9,9,10,10,10,13,11,12,11,14,14,15,0,0,0,0,1,2,4,3,5,7,6,8,8,9,10,6 7,8,7,9,8,9,10,9,10,10,13,12,13,14,15,15,0,0,0,2,4,3,5,6,6,6,8,9,11,6 0,1,15,0,0,0,0,0,0,0,0,15,0,15,7,10,9,13,11,9,12,11,10,12,10,11,9,10,11,7 15,1,15,0,0,0,1,15,0,15,1,14,0,0,10,8,12,8,10,10,12,9,12,9,10,10,11,10,11,7 0,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,11,11,13,9,12,9,10,10,10,8,7 0,0,0,0,0,0,0,14,0,0,14,0,2,10,10,10,12,10,12,9,11,10,10,10,11,10,11,11,8,7 0,0,0,0,0,0,0,0,0,0,0,0,0,12,10,10,10,10,10,11,10,10,10,10,9,12,8,12,8,7 2,3,5,6,6,8,8,8,10,10,13,14,14,0,14,14,14,10,10,8,8,8,7,8,7,4,2,0,1,8 5,6,7,6,8,8,8,8,10,10,12,14,14,15,14,15,14,15,15,11,9,9,6,8,6,6,2,2,2,8 2,6,7,6,8,8,7,9,12,12,15,15,14,15,15,14,14,11,11,9,8,8,8,6,6,3,4,3,0,8 0,1,1,1,4,8,7,8,9,8,9,13,13,15,15,15,14,10,11,8,8,8,8,7,7,3,1,0,2,8 0,0,2,4,5,8,7,9,10,9,14,15,15,14,14,14,13,10,10,8,8,8,7,5,5,2,1,0,2,8 6,8,8,8,9,10,10,11,13,13,14,0,15,1,2,2,3,3,3,4,10,9,11,10,11,10,12,12,10,9 5,8,9,9,11,12,12,11,14,15,15,0,0,0,3,3,4,4,3,6,11,11,11,11,11,11,12,11,11,9 3,6,8,7,8,9,9,10,12,11,14,0,0,15,4,3,5,3,4,12,11,10,12,11,11,11,12,12,12,9 4,6,7,7,8,9,9,13,10,12,12,14,14,0,1,2,5,3,4,12,10,11,11,10,11,10,12,11,13,9 3,5,6,6,9,11,10,11,12,12,14,14,0,0,0,2,4,4,3,6,11,10,12,9,10,10,12,11,11,9 4,3,3,3,3,13,13,12,13,12,12,6,6,7,7,7,7,0,0,0,0,0,15,0,0,14,8,9,9,10 4,3,5,4,4,4,4,13,12,13,12,13,12,6,6,7,6,7,7,6,15,0,15,0,0,0,15,0,8,10 6,3,4,4,4,3,3,12,14,13,12,12,12,6,6,6,6,7,6,14,0,0,14,0,15,0,10,9,9,10 4,4,4,4,4,0,13,11,13,12,12,8,6,6,6,6,14,1,0,0,0,15,0,9,9,9,9,9,9,10 8,4,3,4,3,14,13,13,12,13,12,6,6,6,7,7,0,15,0,0,0,0,15,8,8,9,9,9,9,10 14,12,11,11,10,11,10,10,8,9,8,7,7,6,5,5,4,3,4,2,1,0,0,14,15,13,13,13,14,12 12,11,11,10,11,10,10,9,8,8,5,6,6,4,5,4,4,3,3,1,14,14,13,14,12,13,14,13,13,12 12,12,10,12,9,11,9,11,8,7,8,5,5,4,4,4,4,4,2,3,14,15,13,13,13,13,14,14,13,12 11,10,10,10,10,10,10,8,6,7,5,5,5,5,3,4,4,1,2,14,13,14,13,13,13,13,13,14,12,12 11,10,11,12,10,11,10,11,8,8,6,6,5,5,4,4,3,4,3,3,2,0,14,12,13,12,14,13,14,12 10,13,0,0,0,0,0,2,0,4,0,3,3,2,2,3,2,3,3,2,3,2,2,3,2,4,2,2,5,11 12,12,12,12,12,0,14,2,15,1,2,1,0,3,2,2,0,4,1,5,2,2,2,2,4,0,4,1,3,11 12,12,12,11,14,12,12,15,1,0,1,1,0,3,1,2,2,2,1,5,2,2,2,2,1,3,0,2,1,11 12,12,12,11,14,12,13,12,0,15,2,0,2,0,4,2,0,4,2,3,0,2,2,2,2,2,2,2,1,11 12,12,12,11,14,0,0,0,0,15,2,0,0,2,2,0,3,1,2,4,1,3,1,4,2,2,4,2,4,11 1,0,0,0,0,0,1,0,0,0,0,0,0,2,14,0,0,0,2,14,1,0,0,0,0,0,0,14,2,13 1,14,2,0,0,0,0,0,1,0,0,0,0,0,0,14,2,0,0,0,0,0,2,14,0,0,0,1,14,13 1,0,0,0,0,1,0,0,0,2,14,1,0,0,1,0,0,0,0,0,0,2,14,1,0,0,0,14,1,13 0,2,14,1,0,0,0,0,1,1,14,2,0,0,0,2,14,1,0,0,0,0,0,1,0,0,0,14,0,13 14,2,0,0,2,14,14,2,0,14,2,0,14,2,0,0,0,0,14,2,0,0,0,0,0,0,0,15,2,13 8,8,8,8,6,9,8,8,6,9,6,9,8,8,8,5,10,5,8,6,9,8,8,8,6,8,8,11,15,14 8,8,8,9,6,8,6,10,8,8,8,8,10,6,9,8,8,8,6,10,8,8,8,8,8,6,9,8,8,14 8,8,8,8,8,6,8,9,6,8,8,8,10,6,9,8,8,8,8,8,8,6,9,6,8,8,8,12,2,14 8,8,6,8,8,8,8,8,8,8,8,8,10,6,9,6,10,6,8,8,8,8,6,9,8,8,8,6,8,14 8,8,8,8,10,6,8,8,8,6,10,6,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14 6,8,8,7,9,9,8,11,11,13,14,14,15,14,15,15,0,14,0,14,15,0,14,14,13,13,10,10,11,15 6,7,8,6,9,9,8,9,9,10,10,12,12,14,14,15,14,0,0,15,14,14,0,14,14,14,13,12,8,15 10,7,10,9,10,10,12,10,13,13,14,14,14,15,15,15,15,14,0,14,15,13,15,11,14,9,10,9,7,15 9,8,9,8,10,11,12,12,14,14,0,14,0,14,15,14,14,14,13,14,11,13,10,9,8,10,7,8,8,15 8,9,10,11,9,12,12,15,14,0,14,15,14,14,12,13,12,8,9,7,8,8,8,8,8,7,7,7,4,15 2,5,2,5,1,3,2,2,4,1,6,14,14,12,10,12,12,11,11,12,12,12,11,11,12,10,12,12,10,1 4,2,2,4,1,5,3,11,9,12,10,12,12,9,11,10,14,11,10,14,10,12,10,12,10,14,10,12,12,1 2,4,4,5,13,10,9,13,10,13,10,12,10,13,10,10,13,10,13,12,12,10,13,10,12,10,13,10,10,1 2,1,0,1,15,14,13,14,10,12,10,9,9,9,8,7,8,7,8,6,3,1,14,0,15,0,15,15,0,2 1,0,15,0,13,12,12,11,11,10,8,9,9,9,7,7,8,6,7,3,14,15,15,15,15,15,15,15,14,2 0,1,0,15,12,11,12,9,11,10,10,8,8,9,6,8,4,15,15,14,15,15,14,0,14,2,14,0,0,2 2,1,15,0,14,12,12,12,11,11,0,8,8,8,8,8,7,8,6,7,1,0,14,0,0,14,0,0,15,2 2,0,15,15,12,14,12,11,10,10,8,8,8,9,8,8,8,7,8,3,15,14,15,15,14,1,15,0,15,2 15,15,12,12,10,9,10,8,8,8,8,7,6,0,15,15,0,15,15,10,10,9,8,8,7,9,7,8,7,3 0,13,14,12,10,8,8,8,8,8,8,8,8,8,4,1,14,0,14,1,13,13,14,11,11,8,8,8,8,3 15,14,13,13,14,11,12,11,9,9,8,8,7,8,6,5,15,2,0,0,14,15,0,12,12,8,8,8,8,3 0,0,12,13,11,9,9,8,8,7,7,0,1,15,14,15,12,10,12,10,9,9,8,8,8,8,7,8,6,3 0,15,13,12,11,10,8,10,9,9,8,8,7,7,6,4,15,0,15,1,13,15,12,9,9,10,7,8,7,3 10,8,10,10,9,10,9,1,0,0,0,15,0,15,0,15,5,3,4,2,1,10,13,10,12,12,12,11,13,4 10,10,9,10,9,4,15,0,15,0,15,0,0,0,0,15,0,15,0,7,2,3,2,8,11,9,12,11,11,4 10,9,8,8,14,0,15,0,15,15,15,0,0,15,15,14,5,1,2,2,8,9,12,10,11,12,12,12,14,4 9,8,8,9,9,8,8,15,0,0,0,0,14,0,0,0,0,15,0,12,6,7,2,12,12,10,12,11,14,4 10,8,9,10,8,2,0,0,15,0,0,15,15,1,15,15,0,0,0,9,4,5,3,10,12,12,10,12,9,4 9,7,8,7,8,8,7,9,13,11,12,8,14,1,15,0,0,0,0,2,10,11,11,7,8,7,8,7,8,5 8,7,8,8,8,8,7,11,10,0,14,0,0,0,15,0,0,0,0,7,13,12,12,8,8,6,8,6,8,5 8,7,8,8,10,10,11,5,1,0,0,0,0,14,12,12,13,10,8,9,7,8,7,8,6,8,5,7,6,5 8,7,8,7,9,11,10,12,10,10,1,1,0,0,0,2,14,14,13,14,11,11,11,11,10,9,8,8,8,5 8,7,8,8,8,9,9,11,1,15,2,0,0,1,15,15,13,11,13,8,13,12,7,8,7,7,6,6,4,5 8,10,8,9,8,8,8,8,12,10,11,12,12,10,13,13,15,14,15,2,0,15,2,7,6,3,5,5,6,6 9,11,8,8,9,11,11,9,12,10,11,12,12,14,15,15,0,15,0,15,0,1,6,3,4,4,5,5,7,6 8,9,8,9,9,10,10,10,11,10,14,12,12,11,13,0,15,0,1,15,2,1,7,5,6,5,8,6,7,6 9,7,9,9,9,9,9,9,10,11,9,13,14,15,15,0,14,1,0,0,2,5,4,5,6,7,6,6,8,6 9,7,10,9,9,9,10,8,11,11,10,12,11,14,15,14,0,0,0,0,2,2,5,7,6,8,7,7,7,6 0,0,0,0,0,0,15,1,0,6,14,9,11,11,11,10,12,10,10,11,11,10,10,10,10,10,11,10,10,7 1,15,0,0,15,1,0,0,8,8,6,10,11,10,10,10,13,10,12,11,10,10,12,10,10,11,12,12,10,7 0,1,15,0,0,0,0,0,6,8,8,8,10,13,10,11,10,10,11,13,10,12,10,11,11,11,11,10,11,7 1,14,0,15,2,0,15,1,0,15,5,10,10,12,10,12,10,11,11,10,11,12,9,12,12,11,10,12,9,7 0,15,1,0,0,0,1,14,0,7,12,10,11,10,12,10,12,12,12,10,12,11,11,11,10,12,11,10,12,7 1,6,6,7,6,9,9,13,13,13,13,14,13,0,13,13,8,8,8,8,7,6,2,4,3,1,1,1,1,8 2,6,4,4,8,10,10,12,14,14,0,15,15,15,11,12,9,8,7,8,6,7,4,3,3,2,0,0,0,8 2,6,6,6,7,9,9,12,11,12,14,14,14,14,14,14,10,6,8,8,6,6,3,4,3,2,1,2,15,8 5,7,6,6,9,7,10,12,14,14,14,14,14,15,10,12,8,8,8,6,7,6,6,2,2,1,0,0,0,8 0,2,1,3,5,6,6,8,9,7,10,13,12,15,14,14,13,15,15,12,8,8,7,8,7,8,6,4,5,8 8,8,10,11,11,11,10,12,13,1,14,1,0,2,4,4,4,3,4,0,12,11,13,10,12,9,12,11,11,9 7,8,7,8,7,11,10,10,13,13,15,15,15,0,4,3,5,4,4,3,9,10,9,12,12,11,11,11,11,9 5,6,8,8,7,10,10,10,12,12,14,0,0,15,4,4,4,4,5,2,12,10,12,11,11,10,12,11,13,9 6,6,9,8,8,8,8,11,13,13,15,15,0,14,0,0,1,3,4,4,5,0,10,12,11,12,11,10,13,9 7,6,7,7,8,8,9,9,14,12,14,0,0,15,2,4,1,3,2,7,13,12,10,12,12,10,12,11,12,9 6,6,5,8,6,8,7,12,10,12,10,13,11,13,12,12,11,15,15,0,1,1,0,1,1,2,4,3,4,0 4,3,6,7,8,8,6,11,9,10,10,12,12,12,12,13,13,15,14,0,0,1,1,3,2,2,3,2,2,0 6,4,9,9,9,10,11,9,14,0,9,14,12,15,15,0,14,1,1,3,2,3,2,4,2,5,4,4,4,0 8,7,9,9,10,11,11,12,11,12,13,14,14,1,0,0,15,2,1,2,1,2,3,2,2,5,4,4,5,0 4,6,8,8,11,10,12,9,10,11,12,11,8,14,15,14,0,0,0,1,1,1,2,3,4,2,4,4,4,0 4,3,5,0,13,13,14,5,6,6,7,7,8,8,0,0,1,0,0,0,0,0,1,1,0,9,9,9,8,10 1,1,4,3,2,12,12,12,12,13,13,5,5,4,6,5,7,6,0,14,0,15,0,0,0,0,8,9,7,10 1,5,1,1,11,13,12,12,14,5,6,5,5,6,12,15,0,0,0,0,15,0,0,8,9,8,9,9,8,10 4,2,10,13,11,12,12,14,6,6,6,6,6,7,15,0,15,0,0,0,0,0,0,8,8,8,9,9,8,10 2,2,4,3,11,11,13,10,13,14,5,7,6,7,8,7,15,0,0,0,15,1,14,2,7,10,8,8,9,10 7,11,8,8,10,8,9,8,9,9,8,7,5,4,4,4,4,2,3,1,12,12,12,13,12,14,15,14,14,12 12,8,9,9,8,9,9,10,7,8,5,4,5,2,2,2,3,2,3,13,12,11,14,14,14,13,14,13,14,12 9,9,10,10,9,8,8,9,7,7,3,3,2,6,5,5,3,15,13,12,13,14,13,14,14,14,14,14,6,12 10,10,8,9,9,9,10,7,2,3,2,2,4,2,4,3,1,12,11,12,12,12,12,13,13,13,13,14,8,12 11,12,10,10,10,10,9,10,8,8,7,5,6,5,5,5,5,2,2,14,15,14,14,14,14,13,15,14,13,12 12,7,12,9,13,10,11,11,1,0,2,0,1,0,3,0,1,1,0,14,2,0,1,0,15,2,0,15,2,11 9,11,10,10,11,12,10,12,6,8,6,2,0,2,0,1,0,0,0,1,0,2,15,2,2,2,0,1,0,11 9,8,10,10,8,11,11,11,7,8,1,14,0,15,1,15,1,0,0,0,0,2,13,2,0,0,0,1,15,11 0,8,10,10,9,11,11,11,8,8,1,0,1,1,0,0,1,15,0,0,0,0,1,15,0,0,0,1,0,11 9,12,7,10,12,10,10,10,10,7,0,0,1,0,0,0,1,0,0,1,0,0,4,15,15,1,15,1,15,11 7,8,8,8,9,11,10,14,0,15,15,15,14,15,13,13,10,9,9,7,8,7,7,7,7,6,6,7,5,15 7,9,9,10,12,13,12,0,14,14,0,14,14,11,11,10,9,8,9,7,8,8,6,8,7,6,6,6,7,15 8,7,9,9,9,11,10,13,15,14,14,15,14,14,12,13,10,8,8,7,8,7,7,7,7,6,6,6,5,15 8,8,8,8,9,12,12,13,14,15,0,15,0,14,15,15,14,12,11,9,7,7,8,8,8,6,8,8,6,15 6,8,8,8,10,9,10,9,12,11,15,14,0,14,14,15,14,14,14,10,6,7,7,7,6,8,7,6,8,15 8,8,8,8,8,8,9,6,8,8,8,8,6,8,8,8,8,6,8,8,6,8,8,6,9,6,8,6,10,14 8,8,8,8,8,8,8,8,8,6,10,6,8,8,8,8,8,8,6,10,6,8,8,8,8,8,8,6,8,14 8,8,6,9,6,8,8,8,8,6,10,6,9,6,8,8,8,8,6,8,8,6,10,6,8,8,6,8,7,14 8,8,8,8,8,8,8,8,8,8,8,8,8,6,9,9,6,10,8,8,8,8,8,8,6,10,6,8,6,14 9,6,8,8,8,8,6,8,8,8,8,8,8,8,8,9,6,10,8,10,6,8,8,8,8,8,6,8,8,14 0,0,0,0,2,15,0,0,0,0,0,0,0,2,15,0,14,0,15,2,0,0,15,6,8,8,8,8,1,13 1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,2,14,0,2,14,0,1,13 0,2,14,0,0,1,1,14,2,0,0,0,0,2,14,0,2,14,14,2,0,0,0,1,0,2,14,15,2,13 0,0,0,14,2,0,0,0,0,2,14,1,14,2,0,0,0,0,1,0,0,1,0,0,1,0,0,2,1,13 0,0,1,0,0,0,2,14,1,2,14,1,0,1,14,2,13,2,2,14,2,14,1,0,14,1,9,14,8,1 1,15,3,0,4,2,4,4,4,4,11,10,10,14,11,13,10,13,11,13,10,12,12,10,12,10,10,10,10,1 0,0,0,0,0,14,0,0,0,14,0,0,1,14,0,0,0,0,14,2,14,1,14,0,1,14,2,0,0,13 2,4,13,10,10,14,10,12,12,12,10,12,12,12,12,13,12,13,10,12,13,14,11,12,14,10,13,10,14,1 12,10,13,13,10,12,12,12,12,12,10,13,10,12,12,12,12,10,12,12,12,10,12,12,12,12,12,10,14,1 12,12,10,10,14,10,10,12,10,12,10,13,12,12,12,10,14,10,12,12,12,12,12,12,12,10,14,10,14,1 14,10,10,12,12,12,12,12,12,10,14,10,12,12,12,12,12,10,12,12,12,12,12,12,12,12,12,11,12,1 4,13,10,12,12,12,12,10,10,12,12,12,13,10,12,10,14,10,13,10,12,12,12,12,10,14,12,12,10,1 14,13,11,13,10,10,12,8,10,10,9,9,9,8,8,8,9,6,2,15,0,0,15,0,15,1,0,15,0,2 13,13,11,12,11,10,11,11,9,9,10,8,8,9,8,8,9,7,8,0,0,0,1,15,0,14,0,0,0,2 6,2,3,3,2,1,0,0,14,14,12,10,12,10,9,9,8,9,8,8,8,8,8,0,0,0,0,15,0,2 6,2,3,3,2,0,0,0,13,14,10,12,11,10,9,9,7,9,8,9,8,8,1,15,15,1,15,0,0,2 12,7,3,4,2,2,1,0,15,15,12,10,11,10,10,9,8,9,8,9,8,7,10,0,0,0,0,0,0,2 8,2,1,2,0,14,14,13,10,11,9,8,8,8,8,8,0,0,1,0,0,0,15,12,12,9,8,9,7,3 6,2,2,1,1,14,15,12,9,9,8,8,8,8,1,1,0,15,15,15,11,12,8,8,9,7,8,7,7,3 6,2,1,0,15,0,15,14,12,13,10,10,9,9,8,9,8,8,8,0,0,15,0,15,14,14,11,12,10,3 9,2,15,1,15,15,15,13,10,12,9,8,8,8,7,8,0,15,15,14,11,11,10,8,8,8,7,7,6,3 10,2,15,0,14,15,15,12,11,10,9,8,8,7,8,1,15,0,0,15,12,13,9,9,9,8,8,7,8,3 10,10,12,12,14,0,14,0,0,0,2,4,4,3,4,4,3,4,8,11,11,11,12,11,12,10,11,10,13,4 10,10,11,10,12,14,15,15,0,15,2,4,3,4,4,4,4,8,12,12,10,12,12,11,12,12,12,11,11,4 11,11,12,14,13,0,15,0,0,0,2,4,2,5,4,4,4,4,5,11,10,10,12,11,11,11,11,11,12,4 11,10,11,11,15,15,0,15,0,15,1,4,3,4,4,4,4,4,4,5,12,11,12,10,12,10,12,12,12,4 10,12,9,10,13,0,0,0,0,15,2,4,4,4,4,4,4,12,11,12,11,12,10,11,11,11,11,11,10,4 7,7,8,6,8,11,10,8,11,11,1,2,0,1,0,0,15,15,15,14,10,10,10,8,9,7,8,7,8,5 7,7,7,7,7,11,10,13,10,11,11,2,1,0,0,15,0,14,14,12,10,10,7,9,8,8,6,7,7,5 8,8,7,7,10,12,12,10,11,12,2,15,0,0,15,0,14,14,13,10,9,9,8,8,8,7,7,6,8,5 7,8,8,8,12,10,12,11,1,1,2,15,1,15,0,15,0,13,13,10,10,9,8,8,8,8,6,6,7,5 7,8,10,12,9,13,12,10,1,2,15,1,0,0,0,15,14,13,12,10,8,8,9,7,8,7,7,8,6,5 7,6,8,7,8,9,8,9,10,9,12,11,12,12,14,14,15,0,15,0,2,3,4,6,6,7,7,6,9,6 7,8,8,8,9,9,9,10,10,10,11,13,12,14,14,15,15,0,0,2,5,4,6,6,6,8,8,8,11,6 6,8,6,8,7,9,8,9,11,10,12,11,12,10,14,13,15,0,15,1,2,3,5,6,6,8,8,8,9,6 7,8,8,8,8,8,8,9,10,10,10,12,12,12,14,13,15,0,0,0,2,3,2,6,4,7,7,7,8,6 8,11,8,10,8,10,10,11,11,10,12,14,14,0,0,15,1,2,3,4,5,6,7,7,6,8,8,8,11,6 15,1,0,1,0,0,0,1,0,15,2,0,0,1,0,2,10,11,10,9,10,10,9,12,11,10,12,10,10,7 15,1,15,0,1,15,0,1,0,0,0,1,15,1,11,10,12,10,11,10,11,12,9,12,12,10,12,11,10,7 0,0,0,0,2,15,0,1,0,1,0,0,12,12,10,12,12,10,12,10,12,10,10,10,11,11,10,11,11,7 0,1,0,0,14,2,0,2,15,11,13,10,12,12,11,9,13,12,11,10,10,10,10,11,11,12,12,10,12,7 0,15,1,15,1,15,2,14,2,0,1,10,11,10,11,10,12,11,12,10,10,12,10,12,10,12,10,11,10,7 0,14,1,0,2,4,3,6,7,6,8,9,10,10,14,13,15,13,13,10,8,8,8,6,6,2,2,1,1,8 0,1,2,2,4,5,5,8,8,8,11,12,13,13,14,14,14,12,12,9,8,7,9,6,5,3,2,4,0,8 1,3,5,4,6,8,7,8,11,10,13,14,14,0,14,15,11,9,10,9,7,8,7,5,4,4,1,1,0,8 0,0,3,2,5,6,5,9,7,8,9,11,10,13,15,15,15,13,13,10,8,9,7,7,7,6,1,1,0,8 14,1,0,0,1,3,3,5,7,6,7,9,9,12,14,13,15,14,15,13,9,9,8,8,8,6,2,3,0,8 5,6,7,8,6,9,8,9,12,11,13,15,14,0,0,1,3,4,4,4,12,11,11,12,11,11,12,11,12,9 1,5,6,7,6,9,10,12,12,12,14,15,0,15,3,4,4,4,4,3,11,12,12,12,13,10,13,11,12,9 4,6,7,8,7,9,9,10,12,12,12,14,14,14,1,15,3,4,3,4,3,4,11,10,12,12,12,12,12,9 1,5,5,5,7,8,8,9,10,12,11,14,14,15,0,1,4,4,3,4,12,12,11,12,11,12,12,12,10,9 3,4,5,5,7,8,8,9,11,11,12,13,14,14,0,0,4,3,4,3,11,12,10,12,10,14,11,12,11,9 2,1,2,3,2,12,12,12,13,13,8,6,6,6,6,7,8,15,0,15,0,0,0,0,0,8,9,10,8,10 1,0,1,1,2,12,12,12,12,13,7,6,6,6,7,7,15,0,0,0,0,0,14,0,8,9,9,9,7,10 2,2,2,3,3,12,12,12,13,13,6,8,6,7,6,7,15,15,0,15,0,15,0,8,8,9,8,9,8,10 6,1,3,0,3,12,13,12,13,13,8,6,7,7,6,7,0,0,0,0,0,15,0,10,8,8,9,8,9,10 0,2,2,2,3,2,13,12,13,12,13,6,7,6,7,6,7,15,15,0,15,15,0,0,0,8,9,8,9,10 9,10,9,9,8,9,9,7,8,8,7,6,4,6,3,4,3,15,0,13,15,15,15,14,14,14,14,14,13,12 9,10,10,9,10,8,10,9,10,8,10,8,8,6,3,3,4,3,4,3,0,15,14,14,14,14,14,15,14,12 9,10,9,10,6,10,9,8,9,8,10,7,8,4,3,4,2,4,3,3,14,14,12,14,14,15,15,14,15,12 9,8,9,9,8,8,9,8,9,8,9,7,8,4,3,4,2,3,2,14,14,15,14,15,14,14,14,0,13,12 9,9,9,9,8,9,8,9,8,9,9,6,9,8,8,7,2,3,3,2,2,2,13,15,15,15,14,14,14,12 1,9,11,11,9,12,10,12,12,11,13,0,0,0,2,1,1,0,1,1,2,1,2,2,0,3,0,2,2,11 10,9,10,8,12,8,12,9,12,14,2,0,2,14,2,0,2,0,0,2,0,0,2,1,0,1,2,0,1,11 11,8,13,11,9,12,12,9,14,1,14,2,1,0,2,2,0,1,1,2,1,0,1,2,0,2,0,1,1,11 11,7,12,10,10,11,12,12,12,14,1,0,1,1,1,0,3,0,0,2,0,0,2,0,1,1,2,0,2,11 13,10,14,12,0,0,2,0,2,1,0,2,0,2,1,1,1,1,0,4,0,0,2,0,2,0,2,0,2,11 3,5,5,6,6,7,8,8,8,8,10,8,8,10,8,10,12,12,13,14,15,15,14,0,0,0,0,0,4,0 5,8,6,7,8,8,8,9,8,8,8,9,9,12,12,12,12,14,14,14,0,15,0,0,0,1,2,2,3,0 2,3,4,3,6,5,6,8,7,7,9,8,9,9,11,9,11,12,12,12,13,13,14,15,0,15,2,2,2,0 2,4,4,5,6,6,8,6,9,8,9,8,10,9,12,11,11,12,12,13,14,14,0,0,0,1,1,2,4,0 2,3,3,4,5,6,6,7,8,8,8,9,9,9,11,12,10,12,12,13,13,14,14,0,0,0,1,0,3,0 5,6,6,7,7,8,8,8,10,10,12,13,14,0,14,15,0,15,0,14,12,11,9,8,8,8,7,7,7,15 7,7,8,7,9,10,10,14,14,15,15,15,0,15,15,15,14,12,12,9,9,9,8,8,7,8,6,8,6,15 3,5,6,6,8,8,8,9,9,10,11,13,14,14,15,15,0,0,15,0,14,13,10,9,8,8,7,8,7,15 8,7,8,8,9,12,10,12,13,13,15,0,15,0,0,15,15,14,14,13,10,10,8,8,8,8,8,6,7,15 4,4,6,6,7,8,7,8,11,10,12,14,14,0,0,15,0,15,15,13,10,10,8,8,8,8,6,7,6,15 8,8,8,8,8,8,9,8,6,8,10,6,8,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,14 8,8,8,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14 8,8,6,8,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,6,9,8,8,8,8,8,8,8,8,14 6,10,6,8,8,6,8,8,8,6,8,8,8,8,8,6,8,8,8,8,8,6,10,6,8,8,8,9,7,14 2,14,1,14,2,0,0,0,0,1,14,2,0,0,0,1,14,2,0,0,0,0,0,0,0,0,0,15,2,13 2,14,1,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,2,13 0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,0,13 0,0,0,0,0,0,2,14,1,0,0,0,2,14,1,2,14,1,0,2,14,0,0,0,2,14,1,0,0,13 1,14,2,0,0,0,1,0,0,14,2,0,0,0,0,2,14,1,0,0,1,0,0,0,0,0,0,0,0,13 6,8,8,8,8,11,11,12,12,12,13,13,14,15,14,15,0,0,0,1,3,2,4,4,4,3,5,5,5,0 7,8,9,9,9,10,9,10,11,12,12,14,14,15,15,15,0,0,0,2,2,2,4,4,4,5,5,6,7,0 5,6,7,6,7,7,9,11,11,11,12,13,12,13,14,14,15,15,15,0,15,1,3,5,4,3,5,5,6,0 8,8,9,9,10,11,10,12,13,13,13,14,14,15,15,15,0,1,0,2,2,2,4,4,4,6,6,6,2,0 7,8,9,9,14,9,12,10,13,11,12,13,13,14,15,15,14,0,0,15,3,4,3,5,4,6,4,4,6,0 6,2,3,3,4,2,3,4,2,2,3,0,0,11,14,12,11,14,11,10,12,10,13,10,12,12,12,13,10,1 3,4,3,3,1,4,3,1,3,14,13,12,11,15,12,13,12,13,13,9,13,10,14,12,11,14,12,13,12,1 2,4,2,2,2,3,2,2,14,0,11,14,12,13,13,12,13,13,13,10,12,14,9,12,13,7,14,12,9,1 2,1,4,2,2,2,3,2,2,4,1,3,3,10,12,12,14,12,10,14,10,11,13,11,12,12,11,14,14,1 4,2,3,2,2,14,14,15,15,15,14,14,14,12,13,12,11,13,12,13,12,12,12,12,13,12,12,13,8,1 2,14,9,10,10,10,10,12,9,10,9,9,9,7,8,6,5,3,3,1,15,0,14,14,15,14,0,15,0,2 15,13,11,12,10,11,9,10,8,8,10,8,8,9,8,8,7,5,3,5,2,1,15,15,15,15,15,14,15,2 0,1,0,0,0,11,10,12,10,11,10,10,10,9,9,9,10,6,5,3,2,2,14,14,15,12,15,13,0,2 2,0,0,0,10,10,12,10,10,12,10,9,9,8,8,9,7,8,8,5,2,2,1,15,15,13,13,13,15,2 2,15,14,14,9,11,11,10,10,9,10,8,8,9,7,8,7,7,6,4,2,1,14,15,14,14,15,14,0,2 2,0,0,0,13,10,10,9,9,9,8,8,8,8,7,8,2,0,1,0,15,0,14,14,13,12,9,10,8,3 2,0,15,0,13,10,11,9,9,9,8,8,8,3,0,0,0,0,14,10,10,10,9,8,8,8,8,8,8,3 1,0,0,1,14,9,10,8,8,8,8,7,8,0,0,0,0,15,15,11,8,8,8,8,7,9,8,7,8,3 2,0,1,0,0,12,12,10,9,9,8,8,8,7,0,1,1,0,2,15,10,11,8,8,8,8,8,8,8,3 1,0,14,13,11,9,10,8,8,8,8,7,5,0,1,1,0,0,0,11,10,9,9,8,8,8,8,6,9,3 3,10,12,12,6,7,0,0,0,0,0,0,0,0,0,0,15,7,6,6,6,4,8,11,10,13,11,12,12,4 14,9,12,10,13,8,7,0,0,0,0,0,15,1,15,0,15,3,7,6,7,6,6,8,11,12,12,12,11,4 11,14,10,4,14,1,0,0,0,0,1,15,0,0,15,15,0,7,6,4,6,5,6,9,10,12,13,12,12,4 9,10,12,12,8,0,0,1,0,0,15,0,0,0,0,15,6,5,5,8,10,11,9,10,10,11,12,10,6,4 5,8,7,7,8,7,8,6,14,12,11,14,10,2,1,1,0,15,0,0,14,14,13,9,10,6,8,8,8,5 8,6,9,8,12,12,12,13,12,1,2,0,15,15,15,15,15,14,11,7,9,9,7,8,8,7,7,7,2,5 1,8,8,7,8,7,8,7,10,14,13,13,13,8,2,2,15,0,0,15,0,0,14,8,8,8,8,8,7,5 7,7,7,7,7,8,12,12,11,12,12,12,12,2,14,0,1,0,1,14,9,9,7,8,8,7,6,7,6,5 8,7,8,12,14,12,12,10,2,1,0,0,0,15,0,15,15,14,13,9,9,9,8,8,8,7,8,6,8,5 0,0,0,15,2,15,15,2,15,1,14,0,0,8,10,10,10,10,10,10,10,10,8,10,8,11,10,10,10,7 1,14,1,1,15,1,0,0,0,0,9,8,10,8,10,9,10,9,9,9,10,10,10,10,10,10,12,12,9,7 0,0,15,0,0,15,0,0,0,0,0,0,2,15,8,9,9,8,9,9,9,9,10,9,10,10,11,11,10,7 0,0,0,0,0,0,15,2,15,0,0,0,0,8,9,9,10,10,10,10,9,10,10,11,10,12,8,10,11,7 1,15,0,0,15,0,0,0,0,0,8,10,8,8,9,9,13,10,11,10,10,11,10,11,10,11,12,10,10,7 0,0,1,1,3,7,6,9,7,9,8,10,9,15,15,14,15,13,14,9,8,9,8,7,7,6,2,2,0,8 3,5,7,6,9,8,8,9,9,9,14,15,15,14,14,14,13,7,7,9,6,7,6,5,5,1,1,1,1,8 7,6,2,3,1,13,14,12,10,10,7,8,6,8,10,9,12,14,14,15,0,15,1,2,2,4,5,5,7,8 7,6,9,8,9,12,12,14,15,15,14,14,14,12,10,8,7,8,8,5,3,4,3,2,2,2,0,1,0,8 0,2,5,3,6,8,7,7,11,10,14,14,15,14,12,12,8,8,8,8,7,7,6,3,2,0,1,0,0,8 8,10,8,8,8,7,8,6,7,5,6,2,3,1,1,0,0,15,14,13,11,10,10,10,11,11,10,12,10,9 7,9,8,7,10,12,12,12,15,15,0,0,0,4,2,2,2,4,3,10,12,11,12,10,11,10,12,13,9,9 6,6,6,6,7,9,8,10,15,14,15,1,1,2,3,3,3,3,9,13,9,10,11,11,12,10,11,12,14,9 7,7,7,8,8,10,10,13,15,15,15,0,0,0,1,1,2,5,5,11,8,10,12,11,9,12,10,11,8,9 0,5,6,6,8,6,8,10,12,12,12,14,14,14,3,3,5,2,1,5,4,13,12,11,10,12,12,12,10,9 6,1,2,2,15,0,14,14,11,11,10,8,8,8,8,8,8,6,6,6,3,4,2,3,3,2,2,2,3,6 8,8,9,8,9,10,9,11,10,11,11,12,12,14,15,15,0,0,0,1,3,4,2,6,5,8,8,7,9,6 6,10,8,8,12,9,9,10,8,9,10,12,12,11,14,14,15,15,15,0,0,0,3,4,4,7,6,6,8,6 7,8,8,8,9,9,10,10,10,11,11,12,13,13,14,14,0,0,15,2,3,2,2,4,4,5,6,8,7,6 7,8,8,9,8,9,9,10,12,11,11,13,12,14,14,14,0,0,15,2,0,2,4,5,5,7,6,8,5,6 8,11,8,9,8,12,0,0,0,1,14,2,15,2,0,1,1,1,0,2,0,1,2,0,3,1,0,2,2,11 7,10,11,10,7,10,9,9,11,10,12,1,15,2,0,0,1,0,0,1,1,1,0,2,1,1,2,1,1,11 11,8,8,10,9,12,0,0,0,0,14,2,0,1,1,4,0,0,1,1,0,0,2,3,2,15,3,2,0,11 9,13,9,11,14,1,0,1,1,0,2,0,2,14,2,0,2,0,3,0,2,2,4,0,2,2,2,2,2,11 9,6,10,8,9,9,9,14,0,0,0,0,1,15,1,1,2,2,2,3,2,2,2,2,4,2,6,10,14,11 7,3,4,3,1,12,13,10,13,5,6,5,5,8,0,0,14,0,0,0,15,0,8,8,8,9,8,9,8,10 3,5,3,4,3,12,13,13,13,6,5,6,7,7,15,0,15,0,0,0,0,0,12,8,8,9,8,8,9,10 3,5,2,2,4,13,13,12,12,13,10,5,6,5,6,6,15,0,0,0,15,15,0,8,9,8,9,8,10,10 3,4,3,3,12,13,12,13,11,7,5,6,5,5,6,12,0,15,15,0,15,15,4,8,8,8,8,8,8,10 4,2,4,3,12,11,10,13,6,6,5,6,6,13,0,0,15,0,0,0,0,15,7,9,8,9,9,9,9,10 8,10,8,10,9,10,9,11,4,4,4,4,4,4,4,4,2,4,4,0,12,13,14,13,13,14,13,14,13,12 10,8,10,9,10,9,10,9,12,4,4,4,3,4,3,3,3,4,4,1,13,13,14,12,12,12,13,13,14,12 9,9,9,10,10,10,9,10,0,4,4,4,4,2,4,3,3,3,4,14,12,13,12,13,13,13,13,12,14,12 7,10,8,9,10,9,9,12,12,13,4,3,4,3,4,3,4,4,2,4,13,13,12,12,12,13,13,13,14,12 9,9,10,9,10,9,10,10,2,3,3,3,3,3,4,3,4,3,2,11,13,12,13,13,13,12,13,13,13,12 10,6,10,8,11,12,11,13,12,14,11,14,14,12,14,15,12,13,14,10,10,11,7,8,8,6,7,6,7,15 0,5,6,6,7,8,7,9,9,11,13,14,0,15,0,0,15,0,15,15,15,14,9,8,8,9,7,6,7,15 0,6,7,6,7,7,8,7,10,10,13,15,15,0,0,0,0,0,15,0,15,14,14,9,9,9,8,8,7,15 2,7,7,9,6,10,8,13,14,14,15,1,0,1,0,1,1,1,1,14,1,1,15,12,12,12,10,11,9,15 0,1,0,2,0,0,1,2,14,2,0,1,1,0,1,1,14,2,0,0,0,14,1,0,0,0,0,8,7,13 1,1,0,1,14,2,0,2,14,1,0,0,2,14,1,2,14,1,0,0,1,0,0,0,14,0,0,0,0,13 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,2,14,1,14,2,14,0,0,0,0,13 0,2,14,0,0,14,14,2,14,0,0,0,2,14,1,0,2,14,0,0,0,14,2,14,0,0,0,0,0,13 2,12,2,14,14,14,0,14,1,1,14,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,15,1,13 8,8,6,8,8,8,8,8,8,8,8,6,8,8,8,8,8,8,6,10,8,9,6,10,8,8,8,8,10,14 5,9,8,6,10,6,8,8,8,8,8,8,8,8,8,9,6,8,8,8,8,6,10,6,6,10,8,6,10,14 10,4,14,0,0,0,8,8,8,8,8,8,9,6,9,9,6,9,6,8,6,8,8,8,9,6,8,8,8,14 8,6,9,8,6,9,8,8,8,6,10,6,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,9,7,14 8,8,6,8,8,6,8,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,14 6,6,6,6,7,12,11,14,13,14,14,14,15,13,15,14,13,8,8,8,7,8,6,7,6,5,4,4,4,15 12,12,11,12,11,2,0,0,0,0,0,15,15,9,4,4,3,4,4,4,2,11,12,12,12,12,12,12,11,4 1,3,1,2,0,2,0,3,0,3,0,2,2,10,10,12,10,11,12,10,12,12,10,14,12,10,12,12,10,1 3,0,2,1,4,0,1,4,1,1,3,0,12,11,10,11,11,10,12,10,12,10,12,11,10,12,10,12,9,1 1,2,2,2,1,2,1,1,3,3,2,10,12,8,11,10,12,10,12,10,11,12,10,11,11,12,10,10,12,1 3,1,2,2,0,3,1,3,2,2,2,12,10,13,12,12,11,11,12,10,11,12,12,10,12,10,12,9,13,1 4,1,2,2,0,2,2,2,0,2,2,10,11,10,11,11,10,11,11,11,11,11,10,12,12,10,12,12,11,1 4,2,0,1,0,13,12,12,11,12,10,10,10,8,7,8,5,2,2,15,14,13,12,14,14,15,0,0,2,2 6,2,2,2,15,11,12,10,11,11,10,10,10,10,9,8,7,6,5,2,2,1,15,14,14,12,14,14,15,2 6,2,2,2,14,15,14,14,11,12,10,10,9,10,8,8,8,6,5,1,0,1,13,13,13,0,0,0,2,2 7,1,3,2,0,15,15,13,12,12,10,10,10,10,8,8,8,8,8,4,1,0,15,13,13,13,0,15,0,2 4,3,0,1,15,14,12,13,10,11,10,9,10,9,8,7,7,3,4,1,15,0,14,12,12,15,0,1,1,2 8,1,15,0,0,14,13,10,9,10,7,9,7,8,0,0,0,15,0,15,13,12,10,9,8,8,8,8,8,3 3,0,0,1,15,12,13,11,9,9,9,8,8,8,0,15,1,14,0,13,11,12,9,8,8,8,7,9,7,3 6,1,15,0,15,14,13,12,10,10,8,9,8,8,2,0,0,15,0,15,11,11,9,8,8,8,8,8,8,3 7,1,0,0,0,13,13,11,10,10,9,8,8,8,7,15,1,15,0,15,14,14,11,9,9,8,8,8,7,3 6,1,15,0,14,13,13,10,10,9,8,8,9,8,8,15,1,0,0,0,13,13,10,9,9,9,8,9,7,3 11,9,11,10,10,10,10,9,15,0,15,0,14,0,0,0,0,0,1,4,4,5,6,7,7,11,11,11,12,4 10,10,10,11,9,11,10,9,15,15,0,15,0,15,0,15,15,2,4,3,6,6,7,8,8,10,12,11,11,4 9,10,10,10,10,10,10,10,0,0,15,0,0,0,0,15,0,4,3,5,6,6,8,9,10,11,12,11,12,4 10,10,10,11,9,10,10,9,0,15,15,0,0,15,0,0,0,1,3,3,6,6,7,9,9,11,11,12,12,4 10,9,10,10,10,9,10,9,0,15,0,0,15,15,0,0,14,3,2,4,5,6,7,8,7,10,12,12,10,4 7,8,8,9,7,14,10,12,10,11,10,10,10,2,15,1,15,0,0,0,13,12,9,8,8,8,8,8,8,5 8,7,8,7,8,8,7,12,10,11,11,10,11,9,12,9,1,14,0,0,0,0,15,15,14,10,9,9,9,5 6,8,7,8,6,8,7,13,10,10,10,11,11,12,10,10,2,0,0,0,0,0,0,14,14,13,10,9,9,5 8,8,7,8,7,13,12,10,11,11,10,15,2,14,1,0,1,15,0,14,10,10,8,8,8,8,7,8,7,5 8,7,8,8,8,0,13,10,12,10,10,12,10,1,1,1,0,0,0,14,11,11,9,8,9,8,8,8,7,5 7,7,8,8,9,9,9,9,10,10,10,12,12,14,15,15,14,0,0,15,1,2,5,6,6,8,8,8,9,6 6,8,8,8,9,9,8,9,12,10,12,12,13,13,14,14,15,0,15,1,3,2,6,6,7,7,8,8,9,6 7,7,9,8,8,9,9,10,10,10,13,12,13,13,0,15,0,0,0,1,4,4,6,6,7,6,8,8,8,6 6,8,8,8,9,9,10,8,11,10,10,14,13,14,15,14,0,15,0,15,2,2,4,5,6,7,6,8,6,6 7,7,9,8,9,9,9,10,10,10,11,11,12,14,15,14,1,15,0,0,2,2,4,6,7,6,8,8,8,6 0,0,0,0,15,1,15,1,0,15,1,15,0,0,0,0,14,1,14,8,10,8,10,8,9,10,10,10,9,7 14,0,0,0,14,0,0,0,0,14,0,8,9,8,9,10,9,9,10,8,10,9,8,10,10,8,9,9,12,7 0,0,0,14,2,14,0,0,0,14,15,6,8,8,10,8,9,9,8,9,9,9,10,9,10,7,10,10,8,7 14,2,15,0,0,0,0,0,0,0,14,0,14,0,6,8,9,9,8,9,8,9,9,9,8,9,10,10,9,7 9,0,14,0,13,1,0,0,0,0,14,0,15,1,14,0,0,8,8,8,8,9,8,9,9,8,9,9,9,7 13,0,0,0,1,4,3,6,7,8,7,10,10,14,13,13,15,13,12,9,8,8,8,7,8,5,2,1,0,8 14,0,0,0,2,4,5,8,6,8,8,10,10,12,14,13,0,13,13,8,8,8,8,6,6,2,2,1,1,8 11,0,0,15,1,4,4,7,6,7,8,9,10,12,14,14,14,0,14,9,8,8,8,7,7,3,1,0,1,8 8,15,0,0,1,4,5,7,8,7,8,11,10,14,14,14,15,12,12,9,8,8,8,6,7,3,2,2,0,8 11,0,0,0,1,4,3,6,7,7,9,9,10,13,13,13,15,14,14,10,8,8,8,8,8,7,3,4,1,8 2,3,4,4,5,8,6,8,8,8,8,10,9,10,12,10,12,12,12,13,14,14,0,0,0,1,1,2,3,0 3,3,4,5,8,8,8,8,9,10,10,10,11,10,12,12,12,14,14,15,0,0,15,1,0,4,2,4,3,0 2,3,4,4,6,7,8,7,9,9,10,10,11,10,12,12,11,13,14,14,0,0,0,0,1,3,2,3,5,0 2,3,4,4,5,8,7,8,9,9,10,10,12,10,11,11,13,11,13,12,14,14,0,0,0,0,2,2,3,0 1,3,4,4,7,8,8,9,9,10,10,10,10,11,11,12,11,14,14,0,0,0,0,2,1,3,4,4,3,0 2,2,2,2,11,14,11,14,8,6,7,6,6,7,6,6,15,0,0,0,15,0,14,8,9,8,9,9,8,10 2,2,3,2,12,12,13,13,12,13,6,6,6,6,6,6,14,0,15,0,0,14,0,8,8,8,9,8,9,10 8,2,2,2,1,11,11,12,11,11,12,5,6,6,6,6,14,15,0,0,0,0,0,8,8,9,8,9,9,10 7,1,3,2,14,12,13,12,12,13,6,6,6,6,6,6,12,15,15,15,0,15,15,12,8,7,9,8,9,10 6,2,1,2,11,12,12,11,12,9,6,6,6,6,6,14,0,0,15,0,15,0,10,8,8,9,8,9,9,10 10,14,10,12,10,12,11,0,1,2,0,1,0,2,0,2,0,2,0,2,3,0,2,2,1,1,3,1,3,11 13,10,11,13,10,12,12,10,1,1,1,1,1,1,1,2,2,1,4,0,4,0,3,0,2,3,1,2,2,11 13,11,12,12,12,12,12,12,12,12,4,1,2,14,2,1,0,2,2,0,0,2,2,0,0,3,1,2,2,11 11,11,12,10,12,10,12,11,2,2,0,0,2,0,0,1,0,2,2,0,1,0,2,1,1,1,2,2,2,11 14,9,12,12,11,10,12,10,12,11,3,0,0,1,0,2,15,2,1,1,1,1,1,2,0,3,1,2,0,11 11,9,10,9,11,9,9,8,7,7,8,5,5,2,4,3,4,2,2,1,15,15,14,14,13,13,13,13,13,12 11,9,10,10,10,10,8,9,6,7,6,5,4,5,2,4,2,2,2,0,15,15,14,14,14,12,14,14,13,12 10,11,9,8,11,9,9,9,9,8,8,6,6,3,4,4,3,2,3,2,1,1,0,15,14,12,14,13,14,12 12,9,11,10,10,10,10,10,7,8,6,4,4,4,3,4,3,2,2,2,2,1,15,14,13,14,12,14,13,12 9,12,10,10,10,10,10,8,6,7,5,4,4,5,2,4,2,2,1,0,14,14,13,13,13,12,13,13,5,12 2,4,5,6,7,8,8,7,9,8,9,10,10,12,12,14,14,0,15,15,15,14,0,13,13,10,8,9,8,15 0,2,6,6,8,8,7,8,8,8,10,12,12,13,14,14,0,14,14,14,10,11,8,9,8,8,8,8,7,15 5,8,6,8,8,8,8,9,8,9,11,12,13,12,14,14,0,15,15,15,15,0,14,15,15,14,12,11,9,15 4,5,6,7,7,9,8,9,10,10,12,14,14,15,15,15,15,0,0,0,14,14,9,9,8,8,7,8,8,15 7,8,8,8,12,10,12,12,14,15,14,15,15,14,15,13,15,12,12,11,8,9,7,8,8,8,6,8,6,15 8,6,8,8,8,7,8,8,8,7,8,8,8,6,8,8,8,8,8,6,8,6,7,0,2,1,14,2,15,14 7,9,6,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,8,6,7,1,14,0,0,0,14,0,14,14 8,8,8,8,8,8,8,8,8,8,8,8,10,6,9,8,8,8,8,8,8,8,8,8,8,8,8,2,13,14 6,9,6,6,10,6,8,8,8,6,8,8,8,8,8,8,8,6,8,8,8,8,8,6,6,8,8,9,7,14 6,9,6,8,8,8,9,6,9,8,8,8,8,6,9,8,8,8,8,6,9,8,8,8,6,8,2,0,14,14 1,1,0,14,1,0,0,0,2,14,2,14,0,0,1,0,0,0,2,14,1,1,14,0,0,0,0,8,13,13 14,2,0,0,0,0,0,1,14,2,14,1,2,14,1,2,14,1,14,2,14,0,0,0,0,0,14,6,10,13 0,2,15,1,14,0,0,1,0,0,2,15,0,0,0,0,0,0,0,14,14,0,0,9,8,9,8,8,0,13 3,0,0,2,14,1,14,1,0,14,1,0,14,1,0,14,0,0,1,0,0,0,0,0,14,0,14,6,14,13 9,6,8,6,14,3,14,1,0,0,0,1,0,1,14,14,1,0,0,0,0,2,14,2,2,14,1,0,13,13 0,3,6,6,8,8,8,9,13,12,13,0,14,0,4,4,4,10,10,12,11,13,10,11,10,12,12,12,12,9 10,2,5,4,4,4,4,5,3,5,2,4,5,6,8,8,6,8,8,8,10,10,10,13,12,13,15,15,15,9 10,4,4,3,5,3,3,5,2,3,5,4,3,2,6,6,6,8,6,9,7,9,9,10,10,12,12,13,14,9 7,3,4,4,4,3,2,4,4,4,7,7,7,8,9,8,10,12,10,13,15,14,14,15,15,14,1,0,1,9 3,5,3,4,4,3,4,2,4,3,4,4,4,8,7,8,6,10,10,9,11,11,10,13,13,14,14,14,14,9 2,0,4,1,12,8,13,10,12,8,13,10,10,12,10,10,12,12,12,10,13,10,12,12,12,12,10,12,11,1 2,2,1,1,3,2,0,4,1,2,1,2,1,9,10,8,13,9,11,10,12,10,11,9,10,13,10,12,12,1 12,12,10,12,12,10,10,13,10,12,9,13,12,10,10,12,9,13,13,10,12,12,12,12,12,10,13,10,12,1 4,1,3,0,11,13,12,9,12,11,8,12,12,9,12,12,14,11,12,10,13,12,12,12,10,13,8,6,0,1 3,0,10,8,12,12,11,10,11,10,14,10,12,10,10,11,14,12,12,10,11,10,10,12,13,9,2,0,1,1 0,0,0,0,1,14,13,8,9,8,9,8,8,9,8,9,9,8,12,1,15,0,0,0,0,0,0,1,14,2 1,1,2,2,14,13,12,11,11,12,9,10,9,9,8,8,8,7,7,5,2,1,0,0,0,13,12,13,14,2 2,4,1,1,0,15,14,11,11,12,10,10,10,10,9,9,9,7,8,5,4,2,2,0,0,0,14,13,14,2 2,15,14,13,12,11,12,10,11,10,10,9,9,8,7,7,6,5,4,4,1,0,15,15,14,13,14,15,1,2 3,1,15,0,12,11,12,10,10,11,10,8,9,9,7,8,6,4,4,4,0,1,14,14,12,13,0,0,0,2 2,0,0,0,15,11,12,10,8,9,8,8,8,2,15,0,0,1,0,1,14,15,10,10,9,9,8,8,8,3 15,1,13,12,10,9,10,7,8,8,7,0,1,0,0,0,0,0,0,14,11,12,9,8,8,8,8,8,8,3 0,14,9,10,8,8,8,7,7,5,0,1,1,15,1,0,1,14,15,12,11,11,10,9,9,8,8,8,8,3 1,1,15,0,13,9,9,8,8,7,8,0,0,0,0,0,0,0,0,13,10,11,8,8,8,8,8,8,8,3 0,0,0,0,14,12,12,9,8,9,7,8,8,1,0,1,15,1,0,1,0,0,13,10,10,8,9,8,8,3 10,12,10,10,12,11,12,10,0,0,1,0,0,1,14,0,5,4,5,5,6,9,13,12,12,12,12,13,9,4 11,12,10,10,11,12,12,7,0,0,15,0,0,0,15,1,5,4,5,4,6,8,12,11,12,12,11,10,14,4 6,11,12,10,12,10,11,11,4,0,15,0,0,0,0,0,1,4,4,4,5,4,7,12,11,11,11,11,12,4 10,10,12,11,12,10,10,13,2,0,0,15,0,14,0,0,4,4,4,6,6,6,12,12,12,12,11,11,13,4 10,9,12,12,10,12,11,10,0,0,0,14,15,0,0,14,2,4,4,5,6,5,9,12,12,10,11,12,10,4 8,6,8,8,6,7,6,13,9,9,10,9,10,12,12,14,2,0,0,1,0,0,0,15,0,14,15,15,10,5 8,8,8,8,8,7,9,10,11,11,11,1,0,1,0,0,0,14,14,15,13,11,10,6,8,6,8,7,8,5 7,7,7,8,6,9,10,8,13,11,2,15,0,0,0,1,14,0,0,0,13,12,8,8,9,6,8,7,8,5 7,8,8,8,9,11,10,10,10,10,11,12,12,14,15,0,15,0,1,15,1,2,4,5,4,6,5,8,7,6 7,9,7,8,11,10,10,11,10,10,9,14,14,15,0,0,0,1,1,4,4,3,6,6,6,8,8,8,8,6 7,9,9,10,10,10,9,10,10,10,12,15,15,0,15,15,1,1,1,3,5,4,4,7,6,8,8,8,8,6 1,14,0,1,15,0,0,0,0,14,0,8,12,8,11,10,12,10,11,11,10,10,11,9,11,10,10,10,10,7 14,0,1,0,1,0,15,2,15,0,0,15,9,8,9,8,10,10,10,10,11,10,11,11,11,10,12,11,10,7 2,13,1,15,1,0,0,0,15,0,14,8,8,10,8,9,10,10,11,10,11,12,9,11,10,12,10,10,9,7 0,0,0,0,0,0,0,0,0,14,1,10,8,9,10,11,9,9,9,9,11,10,12,11,10,13,10,10,12,7 0,0,1,15,1,0,1,14,1,0,0,0,0,0,14,0,0,9,9,7,8,8,8,9,7,10,9,10,9,7 0,0,2,3,2,6,5,8,9,9,8,9,10,11,15,14,0,15,0,14,1,0,9,6,8,6,7,7,4,8 13,1,0,0,2,6,7,6,8,7,8,11,10,13,14,14,15,15,0,14,9,8,8,8,8,6,1,1,2,8 0,0,2,2,4,6,6,7,9,8,10,10,11,12,14,13,14,15,14,9,8,9,6,8,8,6,2,2,1,8 8,8,4,4,2,0,2,15,15,15,9,10,10,10,9,9,10,12,12,0,15,15,1,1,1,4,7,8,6,8 0,0,1,1,4,5,5,9,7,8,9,10,10,14,14,14,12,13,13,12,8,9,7,8,8,6,2,3,0,8 1,6,8,8,10,10,11,12,13,13,0,0,0,3,5,4,4,4,4,14,11,12,11,11,11,12,12,8,7,9 4,8,7,6,9,9,9,9,11,11,14,1,15,0,1,2,4,3,3,4,4,4,10,12,11,13,11,11,10,9 2,4,6,7,9,8,10,9,13,12,12,14,15,15,1,1,4,4,3,4,12,12,10,12,10,12,11,12,10,9 0,1,4,4,8,8,7,9,10,10,10,12,13,15,15,0,0,3,3,4,4,4,11,11,11,11,11,11,11,9 2,1,5,5,9,8,8,10,11,12,11,15,14,15,1,0,3,4,5,3,6,12,11,12,12,11,11,10,10,9 8,6,9,10,8,6,9,8,8,8,8,8,9,6,10,8,8,8,8,8,8,10,6,9,10,6,9,8,10,14 5,10,6,10,6,9,10,6,9,8,10,6,8,6,9,9,6,10,8,8,8,8,8,8,8,10,6,8,8,14 8,8,8,6,10,8,6,10,8,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,6,8,14 8,8,8,8,8,8,8,8,8,8,8,8,10,6,9,10,6,9,8,8,8,8,8,9,8,8,8,8,9,14 6,10,6,8,8,8,8,10,6,8,8,8,8,8,9,8,8,8,8,8,8,6,10,6,6,10,6,8,6,14 0,0,0,0,0,14,0,14,1,14,2,14,2,14,1,0,0,0,0,0,0,0,0,1,1,14,0,0,0,13 4,15,0,0,0,0,0,0,0,0,2,14,0,0,0,2,14,1,14,2,0,0,0,0,0,0,14,0,14,13 2,14,1,0,0,0,0,2,14,0,2,14,1,0,0,0,0,0,14,2,14,14,2,14,1,14,0,15,14,13 14,1,14,0,2,14,0,0,0,0,0,1,0,0,0,2,14,1,2,14,1,0,0,0,0,0,0,0,15,13 0,0,0,2,14,1,0,0,0,0,0,0,0,14,1,0,0,0,0,0,1,0,2,14,1,14,2,15,2,13 5,7,6,8,6,8,8,8,12,12,13,14,15,13,0,14,14,10,9,10,7,8,8,7,7,7,5,5,4,15 5,4,7,6,8,7,8,8,10,9,12,12,12,14,14,15,0,13,14,8,10,8,9,7,8,6,5,4,4,15 4,8,4,6,8,8,10,10,11,12,12,13,15,13,15,0,14,12,10,9,8,8,7,8,7,7,6,6,4,15 6,6,8,7,9,8,9,12,12,12,12,13,12,13,12,12,12,8,9,8,7,7,6,6,5,4,3,5,2,15 6,3,6,6,8,7,8,10,11,10,13,12,13,14,14,14,12,13,12,9,8,8,7,8,7,6,2,4,4,15 5,4,7,8,8,8,8,10,9,10,11,10,12,9,14,12,13,10,11,13,13,13,15,15,0,0,0,0,3,0 3,6,6,6,9,8,8,10,10,11,10,13,12,12,12,13,12,15,14,15,0,1,3,4,4,4,4,4,5,0 5,4,6,7,8,9,10,10,12,11,11,12,12,12,12,12,13,12,12,14,14,14,0,1,1,3,2,2,5,0 4,6,8,7,8,9,8,9,10,10,12,11,10,11,12,12,14,15,0,15,1,2,2,4,3,4,4,3,4,0 4,6,8,8,7,9,9,12,12,12,12,11,12,10,13,12,0,0,0,1,2,2,3,3,3,5,5,4,4,0 12,10,12,12,12,10,12,12,12,12,14,0,14,2,0,2,2,1,2,2,2,3,1,3,3,0,4,2,2,11 8,14,10,10,10,12,11,14,14,14,3,0,0,2,0,1,4,0,2,14,1,1,0,2,0,2,2,1,1,11 14,10,13,13,12,0,1,14,2,1,0,2,2,1,4,1,2,2,2,2,0,1,2,2,0,2,0,1,1,11 9,9,12,12,8,13,11,14,12,14,2,1,0,2,0,0,2,0,0,2,15,1,14,1,0,1,1,1,0,11 9,9,10,11,9,12,11,14,12,14,1,0,0,14,2,2,2,0,2,2,0,0,14,2,0,14,2,1,0,11 8,11,9,9,10,10,9,9,9,9,9,4,3,3,4,4,4,3,1,3,1,1,14,12,12,14,13,14,13,12 8,11,8,9,10,10,10,9,11,10,8,7,7,5,2,2,3,4,3,4,2,4,2,13,13,12,13,12,14,12 9,10,10,10,10,9,10,9,8,10,4,3,3,4,3,4,3,4,3,3,14,14,12,14,13,13,14,13,14,12 10,10,11,11,12,10,8,10,9,8,7,5,5,4,2,2,3,3,2,3,0,15,12,13,13,12,14,12,13,12 10,10,8,9,8,10,10,10,10,11,6,3,5,2,4,3,2,3,2,5,2,2,14,12,13,12,12,12,13,12 4,4,3,4,4,15,14,12,13,12,12,6,6,7,7,7,5,15,0,0,0,15,0,15,0,8,10,9,9,10 5,2,3,2,3,15,14,11,13,12,12,8,6,6,6,5,6,1,1,0,0,0,0,15,15,0,8,8,9,10 6,3,4,3,4,2,15,12,12,12,12,12,10,6,6,7,7,6,0,14,0,0,15,0,0,9,9,10,9,10 4,3,4,3,2,3,2,12,12,12,12,12,12,8,6,6,7,6,6,15,1,15,0,15,0,1,10,9,10,10 6,2,5,4,3,3,1,12,12,12,12,12,11,6,6,5,7,1,1,0,0,0,0,0,13,8,9,9,9,10 6,6,9,8,10,9,10,10,13,12,12,14,14,0,0,15,1,3,2,5,3,5,6,6,6,8,8,9,11,6 6,8,8,7,10,9,10,9,12,12,10,13,13,14,15,15,15,0,1,3,4,4,5,5,6,7,11,9,12,6 5,8,7,7,6,12,12,12,12,11,5,1,0,0,0,0,0,14,15,14,12,12,11,9,9,8,9,8,8,5 8,7,8,6,10,12,10,12,10,11,9,1,0,0,0,0,14,15,15,14,12,13,10,9,8,8,7,6,7,5 4,2,2,2,1,0,2,1,0,14,8,11,8,11,8,10,10,11,10,12,10,12,9,12,10,10,11,10,10,1 10,15,2,15,2,15,1,2,2,4,2,2,3,2,4,7,12,10,11,10,11,10,9,12,10,14,10,10,13,1 0,3,3,2,3,3,3,2,4,4,2,5,5,4,14,13,9,12,10,11,11,11,10,11,10,13,10,12,11,1 15,0,0,1,1,2,3,2,2,4,0,12,12,12,10,10,12,11,11,12,10,11,10,12,10,11,10,12,9,1 14,0,1,1,2,2,2,4,3,4,4,4,4,11,12,11,12,10,11,11,11,12,10,12,12,10,12,11,13,1 2,2,0,1,0,13,12,11,10,11,10,9,9,8,8,8,7,6,6,1,1,1,1,0,1,13,13,12,14,2 4,1,0,1,14,10,10,10,8,8,10,8,8,9,6,7,7,4,4,2,0,0,15,14,14,12,14,14,1,2 5,1,2,1,0,12,11,10,10,9,9,8,8,8,7,7,7,4,4,0,0,0,0,14,14,15,14,14,2,2 4,0,1,0,0,11,12,10,11,10,8,8,8,8,6,8,6,6,7,2,0,0,0,15,15,14,14,15,14,2 1,2,0,1,13,9,11,9,9,9,8,9,8,8,7,7,6,6,6,1,15,0,0,15,15,15,15,0,15,2 2,2,0,0,15,12,10,9,9,7,9,6,7,0,0,0,0,0,0,13,10,10,8,8,8,7,7,7,7,3 2,1,0,15,14,10,11,9,8,8,7,6,7,0,15,0,0,14,0,12,9,9,8,8,8,6,6,7,7,3 3,1,0,15,14,9,9,9,7,8,7,7,6,15,0,0,15,15,14,14,10,9,8,7,8,7,6,8,6,3 3,0,15,0,12,8,9,8,6,8,6,15,1,0,15,0,14,14,14,12,8,8,7,7,8,7,6,7,7,3 0,1,14,15,11,8,8,8,8,8,6,8,7,0,0,0,0,15,15,14,9,9,8,8,7,7,7,6,7,3 8,11,10,12,9,4,1,15,0,0,0,0,0,0,0,10,2,1,3,2,2,11,10,9,10,13,9,8,13,4 9,11,7,1,0,0,0,0,0,14,6,3,4,2,3,4,3,12,12,12,12,11,11,11,12,11,10,11,10,4 9,10,10,9,10,10,3,15,1,0,0,0,0,8,3,2,4,2,4,2,11,9,12,10,9,13,10,11,11,4 9,9,12,9,11,6,4,15,1,1,0,0,15,7,2,2,4,3,5,2,10,10,12,10,11,12,12,12,11,4 8,8,11,11,13,10,7,1,15,0,0,1,0,15,5,2,2,2,3,1,9,9,9,11,10,13,10,10,12,4 8,7,8,8,6,12,12,11,3,0,1,0,0,0,14,14,10,9,8,8,8,8,8,8,7,8,5,5,1,5 8,7,8,8,6,10,14,10,4,1,0,0,0,0,0,0,15,12,13,9,8,8,8,7,8,8,8,7,8,5 6,7,12,9,10,10,2,0,1,0,0,15,0,0,15,0,14,14,13,12,9,9,8,8,8,8,6,8,6,5 6,7,7,7,8,7,7,0,11,10,12,11,10,11,2,1,0,0,0,0,15,0,0,15,15,12,11,10,12,5 8,7,7,8,6,8,10,11,10,12,8,1,0,0,0,0,15,15,14,0,13,14,9,7,8,8,8,8,8,5 5,8,8,8,9,9,8,10,12,12,13,15,14,0,0,0,0,0,0,1,6,5,8,7,6,8,7,8,6,6 7,8,9,9,8,9,9,9,11,9,12,13,13,13,15,14,0,15,0,15,1,0,4,6,6,6,8,7,8,6 7,8,8,8,9,9,9,11,10,11,10,12,12,13,14,15,14,0,0,0,1,0,3,5,5,6,7,7,7,6 7,8,8,9,8,9,8,8,9,10,11,12,11,12,15,14,14,0,0,0,1,0,1,5,5,6,7,6,8,6 7,8,8,8,8,9,8,9,9,9,11,13,12,14,0,0,14,1,0,0,0,0,5,7,6,8,7,7,9,6 0,0,0,1,14,0,0,0,0,0,8,6,8,9,8,9,10,9,10,11,9,11,7,10,8,10,9,9,10,7 2,2,15,0,0,0,0,0,1,0,0,0,0,15,8,10,8,9,9,9,9,9,10,8,10,10,10,9,10,7 0,0,1,1,0,0,0,14,0,0,14,1,0,14,7,7,10,8,9,10,8,10,8,10,10,8,8,9,12,7 1,15,0,0,15,0,0,0,0,0,0,0,0,12,6,8,9,8,10,8,11,11,9,12,12,10,11,12,8,7 1,14,1,15,1,15,0,0,0,0,0,0,0,6,10,9,12,8,10,8,8,8,9,9,8,10,8,9,11,7 0,0,0,0,1,3,5,7,8,8,8,9,10,12,14,13,0,11,9,8,8,8,8,4,4,1,1,1,0,8 0,0,1,0,2,6,6,7,9,8,9,15,14,0,12,12,10,9,9,8,8,8,7,3,4,1,0,1,0,8 0,1,0,0,1,6,6,7,8,6,9,14,13,14,11,12,9,8,8,8,6,7,3,1,1,0,0,1,15,8 0,0,1,2,4,7,7,6,9,12,14,13,13,13,10,10,8,8,8,9,8,8,6,1,1,1,15,1,15,8 0,0,1,0,2,4,5,8,8,7,12,14,14,10,8,9,7,9,8,8,6,7,3,0,0,0,0,15,0,8 5,5,10,8,10,10,10,12,0,14,0,0,15,2,4,5,3,4,2,5,12,11,13,10,10,13,10,12,11,9 2,5,7,6,10,9,10,10,12,13,14,15,0,0,2,2,5,4,4,3,11,12,11,10,10,13,10,12,12,9 8,7,7,7,8,6,5,2,3,2,2,1,1,0,0,1,15,15,12,10,11,11,11,11,11,13,10,9,12,9 8,7,8,7,8,4,3,5,2,3,0,1,1,0,0,0,1,15,15,9,10,9,12,9,10,8,13,12,12,9 3,5,7,7,9,10,10,10,11,11,14,14,15,15,1,0,2,3,3,6,3,4,13,10,11,10,13,12,12,9 7,4,1,2,12,13,13,14,6,8,7,7,7,7,0,0,0,0,1,15,0,0,0,8,8,9,8,9,8,10 6,4,2,2,12,14,15,14,7,7,8,6,8,6,6,7,15,0,0,15,0,0,0,15,0,0,8,9,8,10 6,2,15,12,15,14,10,7,7,7,8,6,7,15,0,0,0,0,0,0,0,0,15,8,8,8,9,9,7,10 5,3,4,4,3,2,2,13,12,13,12,12,12,6,7,6,7,6,7,15,0,15,0,15,0,9,8,9,9,10 3,4,4,3,4,14,13,13,12,12,13,10,6,5,6,6,8,6,1,14,0,0,0,0,0,15,8,9,8,10 2,4,7,6,8,8,8,8,8,8,9,10,10,12,12,13,12,14,14,0,15,0,15,1,0,2,4,2,4,0 7,1,4,4,5,7,7,8,8,8,8,8,9,10,11,12,12,13,13,12,14,13,15,0,15,2,2,2,2,0 2,5,7,6,8,8,8,9,8,9,11,11,12,13,13,13,14,14,14,15,0,15,1,2,3,2,4,4,3,0 3,3,5,6,7,8,8,7,8,8,9,11,10,11,12,12,12,14,13,15,14,15,0,1,1,3,2,3,2,0 4,7,7,8,8,8,8,8,9,9,9,12,10,13,12,12,14,14,14,14,0,15,0,2,1,3,2,3,1,0 8,10,8,9,10,8,12,1,14,0,14,2,15,2,0,0,1,0,0,1,0,0,1,1,1,1,0,0,1,11 8,10,8,10,8,12,11,0,0,0,2,15,0,0,0,0,0,0,15,2,0,0,1,0,1,0,2,0,2,11 9,8,8,8,10,8,9,9,0,0,14,0,1,15,0,1,14,2,0,0,1,0,1,0,1,0,1,0,1,11 8,10,7,10,6,8,9,9,0,14,2,0,0,2,15,0,14,1,0,14,1,15,2,0,1,1,0,1,1,11 6,9,8,8,9,8,8,12,0,15,2,0,15,2,0,0,2,15,1,0,0,0,0,1,0,1,1,15,1,11 1,5,8,7,7,9,8,11,12,11,13,0,15,15,0,0,15,0,0,0,15,14,15,9,9,11,9,9,8,15 4,6,7,7,7,10,10,13,14,15,15,15,0,0,15,15,15,14,14,14,10,9,9,8,8,7,8,7,8,15 6,8,7,8,8,8,9,14,0,15,15,15,15,15,0,0,15,14,15,11,9,9,7,7,8,6,7,6,6,15 4,7,7,7,7,8,8,9,13,13,14,15,15,0,15,0,0,13,13,11,8,8,7,7,7,7,7,7,6,15 5,4,8,8,6,9,7,11,15,14,15,15,15,14,14,13,15,9,8,9,7,8,7,7,7,7,6,5,4,15 9,10,9,10,10,10,10,9,8,8,7,4,4,4,3,3,3,1,2,1,1,1,0,15,13,9,13,12,12,12 8,8,8,8,9,9,8,9,9,8,9,5,4,3,2,2,1,1,2,1,0,1,0,13,13,10,12,11,12,12 10,6,9,9,9,8,10,10,10,9,10,5,5,3,3,3,3,2,2,2,1,1,1,0,15,10,13,12,15,12 8,8,9,9,8,10,10,10,8,10,8,4,4,4,2,2,2,2,2,1,0,1,0,12,12,10,12,12,12,12 9,7,9,8,10,8,9,9,10,10,5,3,4,2,3,3,2,3,3,2,0,1,13,11,12,13,13,13,12,12 8,8,8,8,6,9,6,9,6,9,6,8,8,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,14 8,6,9,8,6,9,8,8,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,14 4,6,9,6,9,6,8,6,9,8,6,9,8,8,6,8,8,8,8,8,8,9,8,9,8,10,6,8,8,14 4,9,9,8,8,8,8,8,8,9,6,8,8,6,9,6,10,6,8,8,8,8,8,8,9,8,9,8,10,14 9,5,8,8,8,8,8,8,8,10,6,9,8,8,8,6,10,6,9,6,8,8,8,8,6,10,8,8,10,14 0,0,0,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,14,1,0,0,14,0,0,0,0,14,13 0,0,0,0,2,14,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,14,1,14,0,14,0,0,13 2,14,1,0,2,14,0,0,0,2,14,1,0,2,14,0,0,0,0,0,0,0,0,0,0,0,0,0,15,13 0,0,0,2,14,1,0,0,1,0,0,0,0,0,0,0,0,0,0,2,14,0,0,0,0,2,14,14,1,13 9,2,14,0,0,0,1,14,2,0,0,0,0,0,0,0,0,14,0,0,0,0,0,1,0,0,1,0,14,13 2,4,4,4,4,5,5,7,8,8,8,9,9,9,11,10,12,11,12,12,14,13,0,15,0,15,1,0,4,0 0,0,3,3,4,5,4,5,7,7,8,8,8,10,11,10,10,12,11,12,12,12,12,0,15,0,15,0,1,0 4,4,4,4,5,6,7,8,8,8,9,10,10,11,11,11,12,13,12,14,0,0,0,0,2,0,3,3,4,0 5,4,6,6,7,7,7,8,6,8,8,10,8,12,11,10,12,12,11,12,12,11,13,14,14,14,0,0,15,0 2,4,4,4,6,8,8,7,9,8,9,10,10,12,11,12,12,13,13,15,0,0,14,1,1,3,4,4,5,0 3,2,4,2,6,3,3,10,14,12,13,12,12,12,12,12,10,13,12,13,12,12,10,13,11,14,12,12,14,1 4,2,4,4,2,4,4,3,3,6,1,12,12,14,11,13,12,12,12,12,12,13,13,11,14,11,12,12,11,1 12,13,13,12,12,12,12,12,12,12,12,12,14,12,12,10,13,9,10,12,10,9,13,10,10,12,13,8,2,1 14,10,13,13,12,13,12,13,10,12,10,13,12,10,13,13,12,12,13,10,12,9,14,10,12,12,0,2,6,1 2,4,2,4,1,3,2,12,10,11,10,12,12,12,12,11,12,12,14,10,14,12,14,12,10,14,10,10,11,1 1,0,15,11,13,11,11,10,10,10,7,8,7,8,7,8,7,6,6,2,0,0,14,14,14,15,15,15,14,2 1,1,0,0,0,11,11,11,12,11,9,9,9,7,8,8,7,6,4,0,0,0,15,15,14,14,15,0,15,2 2,0,14,11,10,11,9,9,8,9,7,8,8,8,6,9,6,1,15,0,14,15,14,0,0,15,0,0,0,2 0,1,0,0,12,9,11,11,9,10,9,8,8,8,8,6,8,4,3,0,15,0,14,0,14,0,0,15,15,2 2,1,1,0,12,12,11,14,10,12,10,7,8,8,8,8,7,7,8,4,0,1,14,0,15,14,15,0,15,2 1,0,15,0,15,10,12,8,8,9,7,7,7,7,2,1,1,0,0,15,14,0,13,12,10,8,9,8,8,3 1,0,0,0,15,14,14,11,8,8,7,8,8,8,4,1,1,0,0,15,15,15,10,9,10,9,8,8,8,3 1,1,0,0,0,13,13,13,8,9,8,8,9,8,1,1,0,0,0,0,15,15,11,8,8,8,8,8,8,3 0,1,15,0,15,13,13,10,8,8,8,7,9,5,15,0,1,15,0,15,13,10,10,9,10,7,8,8,8,3 0,0,0,0,15,11,11,9,7,9,7,8,8,7,1,1,0,0,0,1,13,13,12,9,9,8,8,8,8,3 11,11,13,11,13,8,8,7,0,0,0,0,0,15,1,15,4,5,4,5,5,8,13,10,11,12,12,12,12,4 10,13,9,7,0,14,0,15,0,15,0,0,15,5,3,4,3,5,5,13,11,10,14,10,12,11,12,10,13,4 13,10,11,12,12,6,6,15,1,0,0,15,0,15,2,4,4,4,4,4,9,11,11,12,12,10,12,10,13,4 13,10,5,0,0,0,0,15,0,15,10,5,4,5,4,4,4,5,4,12,8,8,12,11,12,12,12,13,12,4 12,10,4,3,15,0,0,15,0,0,9,3,4,4,4,5,5,5,5,12,11,12,11,12,11,10,11,10,10,4 8,8,8,8,8,6,13,10,10,11,1,15,0,1,0,0,0,0,0,15,14,12,12,9,8,9,8,8,7,5 7,8,7,7,7,7,6,12,9,11,2,1,0,1,0,0,0,0,15,0,14,14,13,8,7,9,7,8,7,5 8,8,7,8,7,8,6,13,10,10,1,0,0,0,0,0,0,15,0,14,13,12,12,8,10,7,8,8,9,5 7,7,7,7,7,7,7,14,11,11,2,0,0,1,15,1,14,15,15,14,11,13,10,8,9,8,8,8,7,5 7,7,8,8,8,3,15,10,12,10,2,14,0,0,0,0,0,15,15,14,12,13,10,9,9,9,8,8,7,5 6,7,8,8,10,10,11,12,13,13,13,14,14,0,0,0,0,1,1,3,5,5,5,4,6,6,9,10,9,6 8,7,9,9,10,10,10,11,12,13,12,14,14,13,0,15,0,0,1,0,3,2,5,4,6,5,6,7,9,6 6,8,8,8,9,10,12,9,13,13,14,15,14,0,0,15,0,0,0,1,4,4,5,8,6,7,8,9,9,6 5,7,6,7,8,8,8,9,11,11,12,13,13,15,15,14,15,0,1,3,6,5,5,6,6,8,10,8,10,6 4,8,7,8,9,9,9,11,12,12,13,14,14,15,15,15,0,0,1,1,5,4,4,6,6,7,8,8,9,6 1,0,0,1,0,0,1,15,1,1,9,8,9,8,9,8,10,9,9,10,8,10,12,10,10,11,12,10,11,7 1,14,1,15,1,15,0,0,0,0,15,1,0,2,10,9,10,8,10,8,9,9,9,8,10,8,10,9,11,7 15,1,15,0,0,0,0,14,1,0,4,8,8,10,8,8,10,8,9,10,9,9,9,10,10,8,10,10,9,7 0,0,0,0,0,0,0,0,11,11,8,10,10,10,10,10,9,9,10,9,8,9,9,10,9,9,10,10,6,7 0,0,0,0,0,0,0,14,0,0,11,9,10,11,9,9,11,9,10,10,9,10,8,10,10,8,8,10,9,7 15,0,1,2,5,6,6,7,8,8,10,14,14,15,15,14,0,12,10,8,9,8,8,6,7,4,0,0,0,8 0,3,5,5,6,7,8,9,12,11,15,0,15,15,14,15,9,8,8,8,8,8,8,6,5,1,15,0,0,8 0,0,2,3,6,6,7,6,9,9,11,14,15,14,0,0,14,10,10,8,8,8,7,7,7,3,0,0,0,8 0,2,5,5,6,8,7,8,12,12,14,15,15,15,15,15,10,9,8,9,8,8,7,6,6,2,0,1,15,8 14,1,1,1,5,6,7,7,8,7,10,14,13,15,15,15,15,11,10,8,8,8,8,7,7,5,1,0,15,8 6,6,7,7,7,9,7,10,13,12,14,0,14,0,1,0,3,3,4,2,5,5,11,11,10,12,13,13,13,9 6,7,8,7,7,9,8,9,12,11,14,15,14,15,0,0,3,3,3,4,4,5,12,11,12,10,13,10,14,9 6,8,6,8,6,9,10,11,14,14,0,15,14,1,4,4,3,5,4,4,12,14,10,13,12,13,14,14,11,9 6,7,7,6,8,8,8,9,9,10,14,15,15,15,1,2,5,2,3,4,4,12,12,10,10,13,12,11,14,9 8,6,8,8,7,10,9,13,10,12,0,0,0,2,4,4,2,4,4,3,8,14,14,11,11,14,11,11,12,9 6,3,4,3,4,14,12,12,12,13,13,11,8,6,6,6,5,4,3,14,1,0,0,1,1,9,10,10,9,10 8,4,4,3,5,14,14,13,13,12,14,7,8,7,6,7,7,5,6,14,1,0,0,0,15,1,10,9,11,10 5,4,4,4,4,13,15,13,14,14,14,7,7,9,6,7,7,6,7,0,15,0,0,0,0,10,9,10,9,10 7,2,4,2,4,13,13,12,13,12,13,11,11,5,5,5,4,6,12,0,0,15,0,0,9,10,9,9,9,10 6,2,3,2,4,14,13,12,13,12,13,11,10,5,5,6,4,8,12,0,0,0,15,0,0,12,8,8,8,10 14,14,15,14,13,11,12,12,10,12,10,4,3,0,2,1,2,1,2,2,2,1,2,2,2,0,2,1,5,11 13,10,12,12,11,11,10,9,12,14,0,2,0,0,2,0,2,0,1,1,2,0,2,2,0,2,2,1,2,11 14,10,12,12,12,12,12,11,7,3,1,0,2,15,1,1,1,1,0,2,2,1,1,1,1,2,1,1,2,11 11,13,12,11,13,10,12,11,11,10,11,1,1,1,1,1,2,1,2,1,2,3,0,2,2,2,1,2,1,11 9,14,10,11,14,10,12,10,12,14,1,14,1,0,1,0,2,0,0,1,1,0,1,1,2,0,1,2,1,11 10,8,10,9,11,9,10,5,5,5,3,4,4,4,4,4,13,13,13,13,13,14,14,15,14,15,14,14,14,12 10,10,9,10,10,9,11,5,4,5,4,5,6,4,5,4,14,14,14,14,14,14,13,14,14,0,14,0,14,12 1,10,10,11,10,10,11,8,3,5,4,5,5,4,4,5,4,0,14,0,14,14,14,14,14,14,13,14,14,12 10,10,10,10,10,10,11,6,4,4,4,5,4,4,5,4,5,14,14,13,14,14,11,14,13,14,13,14,14,12 9,11,11,9,10,10,10,4,4,5,4,5,5,4,5,5,4,14,14,15,13,14,14,13,14,13,14,14,15,12 1,14,2,1,14,2,1,0,0,1,1,1,0,1,1,0,2,14,2,0,0,2,0,0,2,0,0,0,1,13 0,0,0,1,0,0,1,0,1,1,14,2,1,14,2,0,0,1,0,0,1,1,0,0,0,0,1,1,14,13 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,14,2,0,0,0,1,14,2,1,14,13 14,2,0,2,14,1,0,2,14,1,0,0,2,13,2,0,0,0,0,0,0,0,0,0,0,0,0,14,0,13 13,1,0,14,2,0,0,0,0,1,0,0,0,0,0,0,2,14,1,14,2,1,14,2,0,0,0,0,15,13 8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,10,6,9,6,10,6,8,8,10,10,15,14 10,5,10,8,8,8,10,6,9,8,8,8,10,6,9,8,8,8,8,8,8,8,8,8,8,8,8,9,6,14 8,6,8,8,8,8,8,6,8,7,10,6,8,8,7,8,8,7,8,8,8,10,8,0,15,0,0,15,1,14 8,8,8,9,8,8,8,8,8,9,6,9,9,6,9,8,8,6,9,6,10,8,9,6,6,9,4,10,14,14 8,9,9,8,8,9,10,5,10,6,10,8,8,8,8,6,10,5,9,6,10,8,8,8,6,10,8,9,6,14 4,6,7,6,8,8,9,12,12,12,13,14,14,15,15,0,15,0,0,0,15,14,9,8,9,7,8,8,8,15 5,3,6,6,6,8,8,8,9,10,15,14,14,14,15,14,15,12,12,8,8,9,7,8,7,8,6,6,3,15 6,4,5,6,6,6,7,7,9,8,11,12,13,0,14,14,14,14,13,14,10,9,8,8,8,7,6,6,4,15 6,5,6,6,6,7,7,9,13,12,14,15,14,15,15,14,15,12,10,7,8,8,6,8,6,7,5,6,5,15 4,5,6,5,6,8,7,10,11,11,12,14,15,15,15,15,15,14,15,12,11,9,8,8,8,8,8,8,7,15 6,7,6,7,8,9,9,10,11,12,12,12,13,12,14,14,14,0,14,0,0,15,1,2,2,4,4,4,5,0 7,8,9,9,10,11,12,11,12,12,12,12,13,14,14,15,14,0,15,1,2,2,4,4,3,4,3,3,6,0 7,6,9,9,9,11,10,12,11,11,11,12,13,13,14,14,14,0,14,0,0,0,0,2,2,4,3,3,4,0 7,6,8,8,8,10,10,10,12,11,12,12,12,13,14,12,15,14,0,14,0,0,15,2,2,2,4,3,2,0 8,8,10,10,10,12,10,12,12,12,13,12,11,14,14,14,14,0,0,14,2,0,3,2,3,3,4,3,5,0 1,0,3,0,10,13,10,10,12,13,12,10,10,14,10,13,10,12,10,11,12,12,10,13,12,13,10,10,14,1 4,15,9,12,10,13,10,13,10,12,10,12,10,11,12,10,11,10,10,10,10,10,12,10,8,12,12,10,2,1 0,8,11,10,13,9,10,9,11,12,9,12,10,12,12,10,12,10,12,12,12,13,10,12,12,12,10,12,3,1 14,8,13,13,10,12,10,12,12,13,10,12,10,13,10,12,12,10,10,13,10,9,14,9,10,12,10,6,2,1 12,12,12,12,12,10,12,10,13,10,12,10,12,12,10,10,13,10,10,12,10,10,14,10,10,14,10,12,13,1 14,13,12,13,12,11,13,10,10,9,9,8,8,7,6,7,6,4,4,1,15,15,15,15,15,14,14,0,14,2 0,14,12,12,12,11,11,10,9,9,9,8,8,8,6,7,5,3,4,0,0,15,15,15,15,15,14,15,13,2 0,1,14,0,14,13,12,13,10,10,9,8,8,8,8,8,7,7,7,5,1,1,0,0,15,0,15,15,14,2 2,15,0,15,14,11,12,12,10,11,9,8,9,8,8,7,7,6,6,2,15,0,0,15,0,14,15,0,13,2 1,0,15,15,14,12,13,10,10,11,9,9,9,8,8,8,7,5,6,4,0,1,14,15,0,13,0,15,14,2 1,0,15,0,15,13,13,12,10,9,9,9,8,8,7,7,0,0,0,0,0,15,15,11,12,9,7,7,8,3 15,14,13,13,11,12,10,10,8,9,8,8,8,2,15,1,0,1,0,11,8,9,6,8,8,6,6,6,6,3 0,14,13,14,11,12,10,11,9,8,9,7,8,7,2,0,0,1,0,0,14,12,11,8,8,9,8,8,8,3 15,13,13,12,12,11,10,9,8,9,8,6,8,1,0,0,1,1,15,1,14,12,9,9,8,9,8,8,8,3 0,14,13,14,12,11,12,10,9,9,8,7,7,6,0,0,1,0,1,0,13,13,10,10,9,8,8,8,7,3 10,13,11,11,12,10,8,0,15,0,0,15,0,15,0,7,3,5,4,3,4,3,10,13,11,10,11,11,11,4 12,11,11,10,1,0,15,1,15,15,1,15,0,10,4,3,5,3,6,4,10,12,11,11,11,11,11,11,11,4 13,10,12,12,9,1,0,0,0,14,1,15,0,10,5,4,4,3,3,3,3,3,12,14,12,11,12,11,12,4 11,12,11,10,1,15,0,0,0,15,0,12,8,3,4,3,5,3,3,12,12,10,13,11,12,10,12,11,10,4 11,12,11,9,1,15,15,0,15,15,0,14,14,6,4,3,4,1,4,0,10,10,11,11,12,10,11,10,12,4 8,7,14,12,11,13,11,12,4,2,2,2,2,1,1,0,15,14,13,15,11,12,10,11,10,9,7,8,6,5 8,6,8,8,7,10,13,12,11,12,7,0,0,0,0,0,0,0,15,1,14,14,10,7,8,8,7,8,7,5 7,8,8,7,8,7,10,12,11,11,12,2,1,1,15,1,14,0,0,14,14,14,9,8,9,6,9,8,7,5 12,10,12,2,3,0,1,0,0,0,14,13,14,12,10,10,10,10,10,9,8,9,8,8,8,8,6,7,6,5 8,7,8,8,6,8,5,15,10,14,10,3,2,1,0,0,15,15,15,13,14,13,9,13,11,8,10,9,7,5 10,10,9,11,11,12,12,13,14,14,0,15,0,0,0,0,15,2,2,3,5,4,4,5,5,5,6,5,7,6 8,8,9,9,13,11,12,13,14,14,15,14,0,14,0,0,1,5,3,6,5,6,7,6,6,8,7,8,9,6 6,7,8,9,8,9,9,11,10,12,11,13,13,15,14,0,15,0,0,1,3,2,5,4,5,8,8,9,9,6 6,8,9,8,9,9,10,11,10,11,11,13,14,0,15,0,15,1,0,1,4,3,6,6,6,8,8,8,9,6 6,7,8,9,9,9,10,9,12,11,12,13,13,14,0,15,0,0,0,1,2,2,4,6,6,9,7,8,8,6 1,0,1,0,7,10,11,8,12,10,12,9,12,10,12,10,12,10,12,10,10,12,9,10,10,14,10,10,13,7 4,8,10,12,9,12,10,12,10,9,12,10,10,13,9,10,10,10,10,13,10,13,10,9,12,9,13,11,5,7 10,8,10,12,8,10,8,10,8,10,10,10,12,10,9,12,8,12,10,11,10,10,11,8,9,11,10,10,12,7 0,2,15,1,7,9,7,10,8,10,10,8,10,9,11,11,8,12,10,10,10,11,10,10,11,10,10,10,13,7 1,0,7,6,9,8,9,9,10,10,8,12,10,10,10,12,9,11,11,9,11,10,13,9,11,10,11,9,13,7 0,1,6,4,8,7,8,7,11,11,15,14,14,14,14,15,15,13,12,8,9,8,9,7,8,7,3,3,1,8 3,6,7,7,8,9,9,14,14,14,15,14,14,13,14,13,10,8,8,8,8,7,7,6,6,4,1,2,15,8 1,6,8,6,8,8,9,12,14,14,14,14,14,13,10,10,9,7,8,8,6,6,6,2,1,0,1,1,2,8 2,5,8,7,8,8,8,13,15,15,15,14,15,14,13,12,12,8,8,8,6,8,6,6,6,2,1,1,2,8 1,6,6,6,9,8,8,13,0,14,14,14,14,14,13,14,9,8,9,7,8,7,6,3,4,2,0,0,2,8 8,10,12,12,14,15,14,15,0,15,3,5,2,5,4,4,3,4,10,12,12,11,12,10,11,11,11,10,11,9 5,5,6,6,8,8,8,8,11,10,12,12,12,14,0,0,15,2,3,2,4,3,11,11,11,11,11,12,10,9 7,9,9,9,9,14,13,0,0,1,0,2,0,2,1,3,9,10,9,12,9,9,13,9,11,10,12,10,15,9 8,8,9,9,9,11,10,13,14,13,0,1,2,2,2,2,2,1,2,4,10,10,12,9,12,10,11,12,10,9 7,9,8,8,10,10,10,15,0,0,0,0,1,0,2,2,4,3,2,9,11,10,9,10,9,11,10,9,13,9 9,13,10,8,3,2,2,0,2,0,2,0,2,0,2,0,2,14,2,0,1,0,2,0,1,1,0,1,0,11 12,10,12,10,13,11,12,12,13,12,13,14,12,15,12,1,1,2,0,2,0,2,3,0,2,0,2,0,2,11 15,13,0,14,2,13,0,8,4,3,1,3,3,1,3,2,2,2,2,2,2,4,0,2,2,14,2,2,0,11 1,7,6,6,4,2,1,5,2,0,2,1,2,2,0,1,2,0,1,1,0,0,2,15,1,0,0,0,10,11 8,6,6,6,4,5,3,1,4,2,4,0,2,0,2,2,2,0,0,1,1,1,2,1,2,0,0,1,8,11 4,3,5,5,2,14,14,12,13,12,13,8,6,8,6,7,7,6,6,0,15,0,0,1,0,0,0,14,8,10 3,1,2,2,11,13,12,12,11,6,7,7,7,6,7,6,14,15,0,0,0,15,14,0,15,8,10,8,9,10 5,3,4,4,3,2,1,13,13,13,12,12,11,6,6,7,6,7,6,15,0,0,0,0,0,0,9,9,9,10 1,3,1,2,10,13,13,11,11,4,7,6,6,6,7,15,15,0,0,0,0,15,0,8,8,9,9,8,10,10 8,3,2,2,11,13,12,12,15,5,7,6,6,6,8,7,15,0,0,0,0,14,1,10,9,9,9,9,9,10 10,9,9,9,10,9,10,8,10,9,3,4,4,4,4,3,4,2,3,2,15,14,13,12,14,12,14,14,14,12 15,10,11,10,11,10,10,9,8,7,7,5,5,5,3,4,3,3,4,1,14,15,13,14,14,13,14,14,14,12 9,9,9,10,10,10,10,9,9,8,2,3,3,3,3,2,3,3,3,0,12,14,13,14,13,14,13,14,13,12 9,12,10,11,9,9,10,10,8,4,3,4,4,2,3,2,4,2,4,13,14,14,13,14,13,14,13,13,0,12 10,9,10,10,10,9,10,9,2,3,3,3,3,4,2,2,2,2,2,12,14,13,12,14,13,12,13,13,13,12 0,14,1,0,14,2,1,2,14,0,14,0,0,2,15,15,2,0,0,14,1,14,1,10,7,8,8,9,6,13 1,14,2,14,2,14,14,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,14,0,15,2,8,8,13 0,2,14,0,0,1,0,0,1,14,2,0,1,0,0,1,14,2,0,0,0,0,0,0,0,0,1,0,0,13 0,2,15,0,2,15,15,2,0,0,1,0,0,2,15,0,2,15,15,2,0,0,1,8,8,8,8,8,8,13 14,1,0,14,2,14,0,0,0,14,1,0,14,1,0,1,14,2,0,0,0,2,13,2,0,0,0,5,8,13 8,8,8,8,8,8,9,6,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,14 8,8,8,6,9,6,8,8,8,6,8,6,9,6,8,8,8,6,8,8,8,8,6,9,9,6,10,14,2,14 8,8,8,8,8,9,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,6,8,6,8,8,6,10,14 8,8,8,8,6,8,8,6,8,6,9,6,8,6,8,7,9,6,8,7,14,0,1,15,0,15,1,0,14,14 8,6,7,7,9,6,8,6,8,8,6,7,8,5,8,8,6,8,7,8,7,8,6,15,12,15,14,14,2,14 6,5,8,7,8,10,9,13,12,12,15,0,15,0,0,0,14,15,14,10,10,9,9,8,8,8,7,6,6,15 4,7,8,8,9,11,9,13,12,14,0,15,0,1,0,0,14,13,12,12,10,9,9,7,7,9,6,5,2,15 8,7,8,8,10,10,12,11,14,14,1,15,0,0,15,0,15,13,12,12,10,9,8,8,8,7,5,5,5,15 12,10,12,11,13,15,15,0,0,0,0,0,0,13,0,15,14,13,14,11,6,8,8,6,7,6,5,7,6,15 7,10,10,10,11,10,12,14,0,15,15,0,14,0,0,14,0,14,13,0,12,12,10,8,9,8,8,8,8,15 5,15,3,1,1,2,2,15,2,2,2,9,12,10,13,12,11,13,10,13,11,11,13,10,12,10,12,12,10,1 14,3,0,2,2,2,0,2,4,4,12,12,12,14,11,11,14,12,12,12,12,11,14,10,12,12,11,12,10,1 2,2,2,2,2,1,4,1,9,10,12,12,11,12,12,11,11,12,12,12,11,12,12,12,10,12,10,12,9,1 1,1,1,3,0,2,1,2,11,11,10,12,12,10,12,11,13,10,12,10,11,12,10,11,12,10,10,10,10,1 2,2,2,0,3,12,12,9,13,12,10,12,12,12,10,12,10,11,12,8,12,10,13,10,11,13,10,10,8,1 1,0,15,0,14,12,12,12,10,11,10,9,9,9,6,8,5,5,5,0,0,0,15,14,13,13,11,10,14,2 1,0,14,14,13,10,12,10,10,10,8,9,8,8,7,6,5,1,2,15,15,15,15,12,13,10,13,13,0,2 5,5,1,1,15,13,13,10,10,10,10,9,7,10,6,7,4,3,3,15,15,15,13,13,12,13,0,15,2,2 3,0,14,14,12,10,11,9,10,9,8,7,8,6,7,6,4,3,3,0,15,14,12,13,12,14,15,15,2,2 6,3,1,2,15,13,14,10,12,12,9,9,9,8,8,8,7,4,5,2,0,0,15,14,14,13,12,12,1,2 2,15,15,14,12,10,9,9,8,8,7,7,7,0,1,0,0,14,14,11,10,11,8,7,7,8,7,8,5,3 1,14,12,13,12,10,9,7,8,8,8,1,1,0,15,0,15,11,12,10,9,9,8,7,7,7,7,6,7,3 1,14,13,14,11,10,10,8,8,8,7,7,2,2,0,0,14,10,11,12,10,8,9,8,8,6,6,7,6,3 1,15,12,13,12,10,10,7,8,8,7,1,1,2,15,0,14,13,13,11,10,10,8,8,7,8,6,7,7,3 2,1,14,0,14,10,11,10,9,9,6,8,8,6,0,0,1,0,15,12,11,11,9,9,9,7,7,6,6,3 11,10,11,10,0,0,0,0,0,0,15,0,15,6,6,4,6,3,4,15,10,12,10,13,12,10,11,10,13,4 10,10,12,11,11,0,0,0,15,15,15,0,14,3,5,5,4,5,4,12,9,11,10,12,11,12,11,10,13,4 7,10,10,11,9,0,0,15,0,15,0,0,0,14,2,1,5,6,7,3,10,10,12,12,13,10,12,11,12,4 10,11,10,11,8,15,0,0,0,0,15,0,0,14,1,6,5,5,5,5,13,11,12,12,12,12,12,12,12,4 8,13,9,10,10,13,0,15,0,0,15,0,0,15,6,6,5,4,6,3,11,12,10,12,11,11,11,12,11,4 7,7,8,10,10,12,11,11,1,3,2,0,1,15,15,0,14,11,12,11,9,9,8,8,8,7,6,7,6,5 7,6,8,6,12,11,12,10,13,11,12,12,12,3,3,1,2,0,1,15,0,15,15,14,14,12,12,13,10,5 6,8,6,7,12,12,10,13,9,0,3,0,2,15,15,15,13,12,12,10,10,10,9,8,8,8,6,6,5,5 8,6,8,8,8,7,0,12,12,10,3,1,1,0,15,0,1,14,15,12,10,10,9,8,9,8,7,8,7,5 8,6,7,7,10,13,12,12,10,15,4,1,2,0,15,0,15,14,12,13,10,11,9,8,7,8,9,8,6,5 8,9,9,10,8,11,9,12,11,10,13,10,12,14,15,0,0,0,0,0,2,4,4,5,4,7,7,7,8,6 8,9,8,8,10,9,10,11,12,12,11,14,14,15,0,0,0,0,0,2,4,3,5,6,6,7,7,6,9,6 7,9,9,9,9,10,10,11,12,12,13,14,14,0,15,0,0,1,1,4,3,4,5,6,6,8,9,9,7,6 9,9,10,9,8,10,9,12,11,10,13,14,15,14,0,14,3,0,0,4,3,3,6,6,6,8,7,8,7,6 9,8,10,9,10,10,10,12,12,12,13,15,14,0,0,0,0,0,1,1,4,4,4,6,6,6,8,8,8,6 15,1,0,0,1,0,15,2,0,0,1,0,0,9,10,10,10,10,9,12,9,11,10,11,9,13,10,12,10,7 1,14,1,0,1,15,0,0,0,0,1,15,0,0,8,8,8,8,9,8,10,10,8,10,10,10,10,10,10,7 0,0,0,0,0,15,0,0,0,0,0,0,2,15,7,8,8,10,7,12,10,9,10,10,9,11,12,10,11,7 0,0,0,15,1,15,0,0,0,0,0,0,14,0,8,9,10,10,10,12,10,10,12,10,10,10,10,10,9,7 1,14,1,15,1,15,1,14,1,0,0,0,0,6,12,12,9,11,10,10,10,10,13,10,10,10,10,10,10,7 13,0,2,2,4,7,7,8,9,9,10,14,13,2,0,15,11,10,9,8,6,8,6,4,5,3,0,0,15,8 8,7,5,5,3,1,0,15,13,13,10,8,9,8,9,8,10,13,13,1,15,0,15,1,1,4,5,5,8,8 8,4,3,4,1,13,13,14,10,10,8,9,9,10,13,11,15,0,15,0,1,1,1,3,3,4,7,7,8,8 7,6,4,4,0,15,0,13,13,11,12,9,9,7,8,9,7,10,8,12,15,15,0,1,0,1,1,2,6,8 9,6,5,6,4,4,4,0,14,14,0,14,14,9,11,9,6,8,7,11,10,11,14,0,15,1,1,0,4,8 2,5,7,7,8,10,10,10,12,12,15,15,15,15,3,3,4,4,5,3,10,10,12,12,11,12,10,11,11,9 5,7,8,8,8,11,12,10,14,13,0,14,15,0,1,1,4,3,3,4,4,6,11,8,10,11,12,11,11,9 4,7,8,7,10,10,11,10,13,13,15,15,0,15,2,2,2,5,4,4,4,5,13,10,12,12,11,11,12,9 4,6,6,6,8,7,6,10,10,11,11,13,14,14,0,15,1,1,2,3,4,4,11,10,10,13,12,11,12,9 4,5,6,7,6,10,10,12,12,12,14,13,14,14,1,0,3,3,3,4,4,6,12,11,12,12,13,13,12,9 10,12,10,10,12,10,12,9,12,11,2,14,0,0,0,0,1,1,1,0,0,1,0,1,1,0,1,1,2,11 10,9,13,12,0,0,1,0,1,0,2,14,1,1,0,0,2,14,2,0,1,0,1,1,14,2,14,0,1,11 8,6,10,10,10,10,10,15,1,1,14,1,15,2,0,0,1,0,0,1,0,0,1,0,1,0,2,1,0,11 8,10,10,9,11,8,14,1,0,0,14,1,0,1,0,1,14,2,15,2,0,0,2,0,1,14,2,0,2,11 9,10,10,8,10,11,12,9,0,2,14,0,1,0,0,15,2,0,0,2,0,0,1,0,0,2,0,0,1,11 8,8,8,8,8,8,5,10,5,9,6,8,8,8,6,6,8,8,8,8,6,8,8,6,8,6,6,8,6,14 6,8,8,8,5,9,6,9,6,8,6,9,6,10,6,6,6,8,8,6,9,8,8,8,6,10,6,6,7,14 10,5,9,8,8,8,8,6,9,8,8,8,8,8,8,6,10,8,8,8,8,8,8,8,8,8,8,8,8,14 8,8,6,8,8,8,8,8,8,9,6,8,8,8,8,8,8,8,6,10,6,8,8,8,6,10,6,8,8,14 6,9,6,8,8,6,8,8,6,8,8,8,6,10,6,8,8,8,9,6,8,8,8,8,9,6,8,9,8,14 2,14,1,1,14,2,0,0,0,0,0,1,0,0,0,1,0,0,2,14,1,0,2,14,0,0,1,0,15,13 14,2,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,2,14,0,0,0,2,14,1,15,2,13 0,0,0,1,0,0,0,0,1,0,0,0,14,2,0,0,0,0,0,2,14,1,14,2,0,0,0,14,1,13 0,0,1,14,2,0,0,2,14,1,0,0,1,1,0,0,1,1,0,0,0,1,0,0,2,14,1,0,0,13 2,0,0,0,0,0,0,0,0,2,14,1,0,2,14,14,2,0,0,0,0,14,2,0,0,0,0,0,15,13 6,6,7,7,8,8,8,9,10,10,11,12,12,13,13,13,14,15,15,15,0,0,1,4,3,4,4,5,2,0 3,4,4,4,5,7,7,8,9,8,10,10,11,10,13,12,13,14,14,14,15,0,15,0,1,4,4,3,5,0 6,8,6,8,7,8,8,9,10,10,13,11,13,12,14,14,15,14,15,15,0,0,1,3,4,2,5,4,5,0 0,2,5,4,5,6,7,6,8,8,9,8,9,10,12,12,11,13,12,13,14,13,14,15,15,15,2,1,1,0 7,8,7,8,9,9,9,11,12,12,14,14,15,14,15,14,14,11,11,7,8,8,8,6,6,6,5,6,3,15 6,6,8,7,7,9,9,11,13,12,13,15,14,0,14,15,15,14,14,9,7,8,7,7,6,7,5,6,4,15 6,9,6,8,8,10,10,12,13,13,13,15,15,15,15,15,0,15,15,12,7,9,8,7,7,7,6,6,5,15 15,5,4,5,5,8,8,7,10,10,13,13,12,14,15,15,15,13,13,11,8,7,9,6,7,6,6,5,4,15 10,10,9,11,9,10,10,8,7,8,5,5,5,5,3,3,5,2,2,0,15,14,14,13,14,13,12,12,13,12 10,11,10,12,10,10,10,12,9,7,7,6,4,6,4,4,4,4,2,2,0,0,14,15,14,13,14,14,14,12 8,10,10,10,10,11,10,12,10,10,8,5,6,4,4,4,4,4,3,4,0,0,15,14,14,14,14,14,13,12 7,11,9,10,11,10,11,13,10,10,12,6,6,4,5,4,4,5,4,5,2,0,2,14,15,14,13,13,15,12 10,10,10,10,12,10,12,12,7,6,6,4,4,6,4,4,4,4,3,1,14,14,13,13,13,15,13,14,13,12 2,4,2,3,0,13,14,14,12,13,6,8,6,8,6,7,6,8,0,0,0,0,0,1,0,7,9,9,8,10 1,4,2,3,2,13,13,13,12,13,6,6,7,6,7,6,7,7,0,0,0,0,15,0,0,8,10,8,10,10 4,4,4,3,4,13,12,12,12,12,13,6,6,6,7,7,7,15,0,0,0,0,0,0,0,9,9,9,9,10 4,3,4,3,4,13,13,12,13,13,13,6,6,7,6,7,0,0,0,0,0,0,0,8,9,9,8,10,9,10 4,4,4,2,4,13,12,12,12,12,13,6,6,6,6,6,8,15,15,0,0,0,0,0,0,8,10,9,9,10 4,4,5,5,6,8,8,9,10,10,11,11,11,12,12,11,12,14,14,15,0,0,0,1,2,5,3,4,3,0 5,6,7,7,8,9,9,10,12,11,13,15,0,15,0,0,0,15,15,1,14,12,10,8,7,8,8,7,8,15
direction int
0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 8 8 8 8 8 7 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 3 1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 5 1 5 1 5 1 5 1 5 7 7 9 9 9 9 9 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 0 1 0 1 0 1 0 1 0 1 5 1 5 1 5 1 5 1 5 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 4 1 3 1 4 1 4 1 4 1 3 1 3 1 3 1 3 0 0 0 0 0 1 4 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 0 9 0 9 0 9 0 0 1 5 1 5 1 5 1 5 1 5 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 5 1 5 1 5 1 5 1 5 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 1 2 1 1 1 1 2 2 2 3 3 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 5 1 5 1 5 1 5 1 5 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 2 4 1 1 1 1 1 2 2 2 2 1 3 1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 1 1 1 1 1 1 1 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 9 9 9 9 9 0 0 0 0 0 1 5 1 5 1 5 1 5 1 5 1 2 1 2 1 2 1 2 1 2 1 0 1 0 1 0 1 0 1 0 2 8 8 1 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 5 1 5 1 5 1 5 1 5 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 1 1 1 1 1 0 0 0 0 0 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 3 1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 5 1 5 1 5 1 5 1 5 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 5 1 5 1 5 1 5 1 5 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 1 1 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 5 1 5 1 5 1 5 1 5 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 5 5 5 5 5 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 6 6 6 6 6 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 2 1 5 1 5 1 5 1 5 1 3 1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 5 4 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 5 1 5 1 5 1 5 1 5 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 9 9 9 9 9 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 1 5 1 5 1 5 1 5 1 5 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 0 1 0 1 0 1 0 1 0 6 6 5 5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 5 1 5 1 5 1 5 1 5 1 2 1 2 1 2 1 2 1 2 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1 2 1 2 1 3 1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 5 1 5 1 5 1 5 1 5 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 2 1 2 1 2 1 2 1 2 1 3 1 3 1 3 1 3 1 3 1 4 1 4 1 4 1 4 1 4 1 5 1 5 1 5 1 5 1 5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8 9 9 9 9 9 1 1 1 1 1 1 1 1 1 1 1 4 1 4 1 4 1 4 1 4 1 3 1 3 1 3 1 3 1 3 0 0 0 0 1 5 1 5 1 5 1 5 1 2 1 2 1 2 1 2 1 2 1 0 1 0 1 0 1 0 1 0 0 1 5
import csv, os
from nupic.frameworks.opf.modelfactory import ModelFactory
from nupic.swarming import permutations_runner
from sklearn import cross_validation
import numpy as np
DIRECTIONS = 16
TRAINING_PASSES = 1
FIELD_NAME = "direction"
FILE_NAME = "hits_dir_agg.txt"
FILE_NAME2 = "hits_dir_serial_agg.csv"
FILE_PATH = os.path.join(os.getcwd(), "data", FILE_NAME)
SWARM_CONFIG = {
"includedFields": [
{
"fieldName": FIELD_NAME,
"fieldType": "int",
"maxValue": 15,
"minValue": 0
}
],
"streamDef": {
"info": FIELD_NAME,
"version": 1,
"streams": [
{
"info": FILE_NAME2,
"source": "file://" + FILE_NAME2,
"columns": [
"*"
]
}
]
},
"inferenceType": "TemporalAnomaly",
"inferenceArgs": {
"predictionSteps": [
1
],
"predictedField": FIELD_NAME
},
"swarmSize": "medium"
}
def swarm_over_data(overwrite=True):
if overwrite:
return permutations_runner.runWithConfig(SWARM_CONFIG, {'maxWorkers': 8, 'overwrite': True})
else:
try:
from description import config as model_params
return model_params
except ImportError:
print "No model parameters available. Running swarm..."
return permutations_runner.runWithConfig(SWARM_CONFIG, {'maxWorkers': 8, 'overwrite': True})
def prepare_for_swarm(file_name, file_name2):
reader = csv.reader(open(os.path.join(os.getcwd(), "data", file_name), 'rb'))
data = []
for row in reader:
for r in row[-1]:
data.append(int(r))
writer = csv.writer(open(os.path.join(os.getcwd(), file_name2), 'wb'))
writer.writerow([FIELD_NAME])
writer.writerow(['int'])
writer.writerow('')
for x in data:
writer.writerow([x])
def run_experiment():
print "Running experiment..."
model = [0]*16
for i in range(0, 16):
model[i] = ModelFactory.create(model_params, logLevel=0)
model[i].enableInference({"predictedField": FIELD_NAME})
with open(FILE_PATH, "rb") as f:
csv_reader = csv.reader(f)
data = []
labels = []
for row in csv_reader:
r = [int(item) for item in row[:-1]]
data.append(r)
labels.append(int(row[-1]))
# data_train, data_test, labels_train, labels_test = cross_validation.train_test_split(data, labels, test_size=0.4, random_state=0)
data_train = data
data_test = data
labels_train = labels
labels_test = labels
for passes in range(0, TRAINING_PASSES):
sample = 0
for (ind, row) in enumerate(data_train):
for r in row:
value = int(r)
result = model[labels_train[ind]].run({FIELD_NAME: value, '_learning': True})
prediction = result.inferences["multiStepBestPredictions"][1]
anomalyScore = result.inferences["anomalyScore"]
model[labels[ind]].resetSequenceStates()
sample += 1
print "Processing training sample %i" % sample
# if sample == 100:
# break
sample = 0
labels_predicted = []
for row in data_test:
anomaly = [0]*16
for i in range(0, 16):
model[i].resetSequenceStates()
for r in row:
value = int(r)
result = model[i].run({FIELD_NAME: value, '_learning': False})
prediction = result.inferences["multiStepBestPredictions"][1]
anomalyScore = result.inferences["anomalyScore"]
# print value, prediction, anomalyScore
if value == int(prediction) and anomalyScore == 0:
# print "No prediction made"
anomalyScore = 1
anomaly[i] += anomalyScore
anomaly[i] /= len(row)
sample += 1
print "Processing testing sample %i" % sample
labels_predicted.append(np.min(np.array(anomaly)))
print anomaly, row[-1]
# if sample == 100:
# break
accuracy = np.sum(np.array(labels_predicted) == np.array(labels_test))*100.0/len(labels_test)
print "Testing accuracy is %0.2f" % accuracy
if __name__ == "__main__":
prepare_for_swarm(FILE_NAME, FILE_NAME2)
model_params = swarm_over_data(overwrite=False)
run_experiment()
|
