blob: 3d8d36439914344f6a6e4c71768e4426cae7ab73 [file] [log] [blame]
 /* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can * be found in the LICENSE file. * */ // // This file was generated using a modified version of // the Perl script "algorithm-networksort-chooser" found here: // // http://search.cpan.org/dist/Algorithm-Networksort-Chooser/bin/algorithm-networksort-chooser // #include "networks.h" #include "common/macros.h" // // // #define S(n) static struct hsg_op const sn##n[] #define X(a,b) { HSG_OP_TYPE_CMP_XCHG, { a, b }} // // // #define LS(n) { ARRAY_LENGTH_MACRO(sn##n), sn##n } // // // S(2) = { X(1,2) }; S(4) = { X(1,3), X(2,4), X(1,2), X(3,4), X(2,3) }; S(6) = { X(1,5), X(2,6), X(1,3), X(2,4), X(3,5), X(4,6), X(1,2), X(3,4), X(5,6), X(2,5), X(2,3), X(4,5) }; S(8) = { X(1,5), X(2,6), X(3,7), X(4,8), X(1,3), X(2,4), X(5,7), X(6,8), X(3,5), X(4,6), X(1,2), X(3,4), X(5,6), X(7,8), X(2,5), X(4,7), X(2,3), X(4,5), X(6,7) }; S(10) = { X(5,10), X(4,9), X(3,8), X(2,7), X(1,6), X(2,5), X(7,10), X(1,4), X(6,9), X(1,3), X(4,7), X(8,10), X(1,2), X(3,5), X(6,8), X(9,10), X(2,3), X(5,7), X(8,9), X(4,6), X(3,6), X(7,9), X(2,4), X(5,8), X(3,4), X(7,8), X(4,5), X(6,7), X(5,6) }; S(12) = { X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(2,4), X(6,8), X(10,12), X(1,3), X(5,7), X(9,11), X(2,3), X(6,7), X(10,11), X(2,6), X(7,11), X(6,10), X(3,7), X(2,6), X(7,11), X(1,5), X(8,12), X(4,8), X(5,9), X(1,5), X(8,12), X(2,5), X(8,11), X(4,9), X(3,4), X(9,10), X(3,5), X(8,10), X(4,6), X(7,9), X(4,5), X(6,7), X(8,9) }; S(14) = { X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(1,3), X(5,7), X(9,11), X(2,4), X(6,8), X(10,12), X(1,5), X(9,13), X(2,6), X(10,14), X(3,7), X(4,8), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(6,11), X(7,10), X(4,13), X(8,12), X(2,3), X(5,9), X(2,5), X(8,14), X(3,9), X(3,5), X(6,7), X(10,11), X(12,14), X(4,9), X(8,13), X(7,9), X(11,13), X(4,6), X(8,10), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(7,8), X(9,10) }; S(16) = { X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(1,3), X(5,7), X(9,11), X(13,15), X(2,4), X(6,8), X(10,12), X(14,16), X(1,5), X(9,13), X(2,6), X(10,14), X(3,7), X(11,15), X(4,8), X(12,16), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(6,11), X(7,10), X(4,13), X(14,15), X(8,12), X(2,3), X(5,9), X(2,5), X(8,14), X(3,9), X(12,15), X(3,5), X(6,7), X(10,11), X(12,14), X(4,9), X(8,13), X(7,9), X(11,13), X(4,6), X(8,10), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(7,8), X(9,10) }; S(18) = { X(1,17), X(2,18), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(9,17), X(10,18), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(5,17), X(6,18), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(3,17), X(4,18), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(2,17), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17) }; S(20) = { X(1,17), X(2,18), X(3,19), X(4,20), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(9,17), X(10,18), X(11,19), X(12,20), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(5,17), X(6,18), X(7,19), X(8,20), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(3,17), X(4,18), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(2,17), X(4,19), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19) }; S(22) = { X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(5,17), X(6,18), X(7,19), X(8,20), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(3,17), X(4,18), X(7,21), X(8,22), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(2,17), X(4,19), X(6,21), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21) }; S(24) = { X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(5,17), X(6,18), X(7,19), X(8,20), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(3,17), X(4,18), X(7,21), X(8,22), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(2,17), X(4,19), X(6,21), X(8,23), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23) }; S(26) = { X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25) }; S(28) = { X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27) }; S(30) = { X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29) }; S(32) = { X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31) }; S(34) = { X(1,33), X(2,34), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(9,33), X(10,34), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(5,33), X(6,34), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(3,33), X(4,34), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(2,33), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33) }; S(36) = { X(1,33), X(2,34), X(3,35), X(4,36), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(9,33), X(10,34), X(11,35), X(12,36), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(5,33), X(6,34), X(7,35), X(8,36), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(3,33), X(4,34), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(2,33), X(4,35), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35) }; S(38) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(5,33), X(6,34), X(7,35), X(8,36), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(3,33), X(4,34), X(7,37), X(8,38), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(2,33), X(4,35), X(6,37), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37) }; S(40) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(5,33), X(6,34), X(7,35), X(8,36), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(3,33), X(4,34), X(7,37), X(8,38), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(2,33), X(4,35), X(6,37), X(8,39), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39) }; S(42) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41) }; S(44) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,44), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43) }; S(46) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(15,45), X(16,46), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(31,45), X(32,46), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43), X(38,45), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45) }; S(48) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(45,47), X(46,48), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(15,45), X(16,46), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(31,45), X(32,46), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(47,48), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43), X(38,45), X(40,47), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(44,47), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47) }; S(50) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48), X(17,49), X(18,50), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(33,49), X(34,50), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(25,49), X(26,50), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(41,49), X(42,50), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44), X(21,49), X(22,50), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(37,49), X(38,50), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(45,49), X(46,50), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(45,47), X(46,48), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(15,45), X(16,46), X(19,49), X(20,50), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(31,45), X(32,46), X(35,49), X(36,50), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46), X(43,49), X(44,50), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(47,49), X(48,50), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(47,48), X(49,50), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(18,49), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47), X(34,49), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43), X(38,45), X(40,47), X(42,49), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(44,47), X(46,49), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47), X(48,49) }; S(52) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48), X(17,49), X(18,50), X(19,51), X(20,52), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(33,49), X(34,50), X(35,51), X(36,52), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(25,49), X(26,50), X(27,51), X(28,52), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(41,49), X(42,50), X(43,51), X(44,52), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44), X(21,49), X(22,50), X(23,51), X(24,52), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(37,49), X(38,50), X(39,51), X(40,52), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(45,49), X(46,50), X(47,51), X(48,52), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(45,47), X(46,48), X(49,51), X(50,52), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(15,45), X(16,46), X(19,49), X(20,50), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(31,45), X(32,46), X(35,49), X(36,50), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46), X(43,49), X(44,50), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(47,49), X(48,50), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(47,48), X(49,50), X(51,52), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(18,49), X(20,51), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47), X(34,49), X(36,51), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43), X(38,45), X(40,47), X(42,49), X(44,51), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(44,47), X(46,49), X(48,51), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47), X(48,49), X(50,51) }; S(54) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48), X(17,49), X(18,50), X(19,51), X(20,52), X(21,53), X(22,54), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(33,49), X(34,50), X(35,51), X(36,52), X(37,53), X(38,54), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(25,49), X(26,50), X(27,51), X(28,52), X(29,53), X(30,54), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(41,49), X(42,50), X(43,51), X(44,52), X(45,53), X(46,54), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48), X(49,53), X(50,54), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44), X(21,49), X(22,50), X(23,51), X(24,52), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(37,49), X(38,50), X(39,51), X(40,52), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(45,49), X(46,50), X(47,51), X(48,52), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(45,47), X(46,48), X(49,51), X(50,52), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(15,45), X(16,46), X(19,49), X(20,50), X(23,53), X(24,54), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(31,45), X(32,46), X(35,49), X(36,50), X(39,53), X(40,54), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46), X(43,49), X(44,50), X(47,53), X(48,54), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(47,49), X(48,50), X(51,53), X(52,54), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(47,48), X(49,50), X(51,52), X(53,54), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(18,49), X(20,51), X(22,53), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47), X(34,49), X(36,51), X(38,53), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43), X(38,45), X(40,47), X(42,49), X(44,51), X(46,53), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(44,47), X(46,49), X(48,51), X(50,53), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47), X(48,49), X(50,51), X(52,53) }; S(56) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,44), X(13,45), X(14,46), X(15,47), X(16,48), X(17,49), X(18,50), X(19,51), X(20,52), X(21,53), X(22,54), X(23,55), X(24,56), X(1,17), X(2,18), X(3,19), X(4,20), X(5,21), X(6,22), X(7,23), X(8,24), X(9,25), X(10,26), X(11,27), X(12,28), X(13,29), X(14,30), X(15,31), X(16,32), X(33,49), X(34,50), X(35,51), X(36,52), X(37,53), X(38,54), X(39,55), X(40,56), X(17,33), X(18,34), X(19,35), X(20,36), X(21,37), X(22,38), X(23,39), X(24,40), X(25,41), X(26,42), X(27,43), X(28,44), X(29,45), X(30,46), X(31,47), X(32,48), X(1,9), X(2,10), X(3,11), X(4,12), X(5,13), X(6,14), X(7,15), X(8,16), X(17,25), X(18,26), X(19,27), X(20,28), X(21,29), X(22,30), X(23,31), X(24,32), X(33,41), X(34,42), X(35,43), X(36,44), X(37,45), X(38,46), X(39,47), X(40,48), X(9,33), X(10,34), X(11,35), X(12,36), X(13,37), X(14,38), X(15,39), X(16,40), X(25,49), X(26,50), X(27,51), X(28,52), X(29,53), X(30,54), X(31,55), X(32,56), X(9,17), X(10,18), X(11,19), X(12,20), X(13,21), X(14,22), X(15,23), X(16,24), X(25,33), X(26,34), X(27,35), X(28,36), X(29,37), X(30,38), X(31,39), X(32,40), X(41,49), X(42,50), X(43,51), X(44,52), X(45,53), X(46,54), X(47,55), X(48,56), X(1,5), X(2,6), X(3,7), X(4,8), X(9,13), X(10,14), X(11,15), X(12,16), X(17,21), X(18,22), X(19,23), X(20,24), X(25,29), X(26,30), X(27,31), X(28,32), X(33,37), X(34,38), X(35,39), X(36,40), X(41,45), X(42,46), X(43,47), X(44,48), X(49,53), X(50,54), X(51,55), X(52,56), X(5,33), X(6,34), X(7,35), X(8,36), X(13,41), X(14,42), X(15,43), X(16,44), X(21,49), X(22,50), X(23,51), X(24,52), X(5,17), X(6,18), X(7,19), X(8,20), X(13,25), X(14,26), X(15,27), X(16,28), X(21,33), X(22,34), X(23,35), X(24,36), X(29,41), X(30,42), X(31,43), X(32,44), X(37,49), X(38,50), X(39,51), X(40,52), X(5,9), X(6,10), X(7,11), X(8,12), X(13,17), X(14,18), X(15,19), X(16,20), X(21,25), X(22,26), X(23,27), X(24,28), X(29,33), X(30,34), X(31,35), X(32,36), X(37,41), X(38,42), X(39,43), X(40,44), X(45,49), X(46,50), X(47,51), X(48,52), X(1,3), X(2,4), X(5,7), X(6,8), X(9,11), X(10,12), X(13,15), X(14,16), X(17,19), X(18,20), X(21,23), X(22,24), X(25,27), X(26,28), X(29,31), X(30,32), X(33,35), X(34,36), X(37,39), X(38,40), X(41,43), X(42,44), X(45,47), X(46,48), X(49,51), X(50,52), X(53,55), X(54,56), X(3,33), X(4,34), X(7,37), X(8,38), X(11,41), X(12,42), X(15,45), X(16,46), X(19,49), X(20,50), X(23,53), X(24,54), X(3,17), X(4,18), X(7,21), X(8,22), X(11,25), X(12,26), X(15,29), X(16,30), X(19,33), X(20,34), X(23,37), X(24,38), X(27,41), X(28,42), X(31,45), X(32,46), X(35,49), X(36,50), X(39,53), X(40,54), X(3,9), X(4,10), X(7,13), X(8,14), X(11,17), X(12,18), X(15,21), X(16,22), X(19,25), X(20,26), X(23,29), X(24,30), X(27,33), X(28,34), X(31,37), X(32,38), X(35,41), X(36,42), X(39,45), X(40,46), X(43,49), X(44,50), X(47,53), X(48,54), X(3,5), X(4,6), X(7,9), X(8,10), X(11,13), X(12,14), X(15,17), X(16,18), X(19,21), X(20,22), X(23,25), X(24,26), X(27,29), X(28,30), X(31,33), X(32,34), X(35,37), X(36,38), X(39,41), X(40,42), X(43,45), X(44,46), X(47,49), X(48,50), X(51,53), X(52,54), X(1,2), X(3,4), X(5,6), X(7,8), X(9,10), X(11,12), X(13,14), X(15,16), X(17,18), X(19,20), X(21,22), X(23,24), X(25,26), X(27,28), X(29,30), X(31,32), X(33,34), X(35,36), X(37,38), X(39,40), X(41,42), X(43,44), X(45,46), X(47,48), X(49,50), X(51,52), X(53,54), X(55,56), X(2,33), X(4,35), X(6,37), X(8,39), X(10,41), X(12,43), X(14,45), X(16,47), X(18,49), X(20,51), X(22,53), X(24,55), X(2,17), X(4,19), X(6,21), X(8,23), X(10,25), X(12,27), X(14,29), X(16,31), X(18,33), X(20,35), X(22,37), X(24,39), X(26,41), X(28,43), X(30,45), X(32,47), X(34,49), X(36,51), X(38,53), X(40,55), X(2,9), X(4,11), X(6,13), X(8,15), X(10,17), X(12,19), X(14,21), X(16,23), X(18,25), X(20,27), X(22,29), X(24,31), X(26,33), X(28,35), X(30,37), X(32,39), X(34,41), X(36,43), X(38,45), X(40,47), X(42,49), X(44,51), X(46,53), X(48,55), X(2,5), X(4,7), X(6,9), X(8,11), X(10,13), X(12,15), X(14,17), X(16,19), X(18,21), X(20,23), X(22,25), X(24,27), X(26,29), X(28,31), X(30,33), X(32,35), X(34,37), X(36,39), X(38,41), X(40,43), X(42,45), X(44,47), X(46,49), X(48,51), X(50,53), X(52,55), X(2,3), X(4,5), X(6,7), X(8,9), X(10,11), X(12,13), X(14,15), X(16,17), X(18,19), X(20,21), X(22,23), X(24,25), X(26,27), X(28,29), X(30,31), X(32,33), X(34,35), X(36,37), X(38,39), X(40,41), X(42,43), X(44,45), X(46,47), X(48,49), X(50,51), X(52,53), X(54,55) }; S(58) = { X(1,33), X(2,34), X(3,35), X(4,36), X(5,37), X(6,38), X(7,39), X(8,40), X(9,41), X(10,42), X(11,43), X(12,