/* template int XXX_flow[] = { }; int XXX_dist[] = { }; int XXX_sol[] = { }; QAP(XXX, SIZE, OPTCOST, XXX_sol); */ /* moved to qap.c #define QAP(p, s, w, d, ...) \ int p ## _flow[] = w; \ int p ## _dist[] = d; \ qap p = { s, p ## _flow, p ## _dist, #p, ## __VA_ARGS__ }; QAP(x3, 1, ({ 2, 3, 4, 5 }), ({ 6, 7 })) QAP(x2, 10, 100, 1000, 10000, ({ 0xa, 0xb, 0xc, 0xd })) */ int esc16a_flow[] = { 0, 2, 1, 1, 2, 1, 1, 2, 2, 3, 0, 0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 2, 0, 2, 0, 0, 0, 0, 0, 0, 3, 2, 1, 1, 2, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int esc16a_dist[] = { 0, 0, 0, 1, 0, 1, 1, 2, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 1, 0, 1, 0, 2, 1, 1, 0, 2, 1, 2, 1, 3, 2, 0, 1, 0, 0, 1, 2, 0, 1, 1, 2, 0, 1, 2, 3, 1, 2, 1, 0, 0, 0, 2, 1, 1, 0, 2, 1, 1, 0, 3, 2, 2, 1, 0, 1, 1, 2, 0, 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 2, 1, 0, 2, 1, 0, 0, 1, 0, 2, 1, 3, 2, 1, 0, 2, 1, 1, 2, 0, 1, 0, 1, 0, 0, 2, 3, 1, 2, 1, 2, 0, 1, 2, 1, 1, 0, 1, 0, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 0, 1, 0, 1, 1, 2, 1, 0, 2, 1, 2, 1, 3, 2, 0, 0, 1, 0, 1, 0, 2, 1, 1, 2, 0, 1, 2, 3, 1, 2, 0, 1, 0, 0, 1, 2, 0, 1, 2, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 1, 2, 2, 3, 0, 1, 1, 2, 0, 1, 1, 2, 0, 0, 0, 1, 2, 1, 3, 2, 1, 0, 2, 1, 1, 0, 2, 1, 0, 0, 1, 0, 2, 3, 1, 2, 1, 2, 0, 1, 1, 2, 0, 1, 0, 1, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 2, 1, 1, 0, 1, 0, 0, 0 }; int esc16a_sol[] = { 2, 14, 10, 16, 5, 3, 7, 8, 4, 6, 12, 11, 15, 13, 9, 1 }; // 2 14 10 16 5 1 7 4 8 6 3 9 11 12 13 15 // 2 14 10 9 8 4 3 1 5 6 7 11 12 13 15 16 // 2 14 5 6 12 3 4 1 9 10 7 8 11 13 15 16 // 2 3 1 5 12 10 14 6 8 4 7 9 11 13 15 16 // 4 1 2 5 11 12 15 7 8 3 6 9 10 13 14 16 QAP(esc16a, 16, 68, esc16a_sol); /* ism: 4 - 0:08 (2.42) (args: 2 14 10 16) 1:37 (64.28) (args: 2 14 10) 19:57 (6:04) (args: 2 14) 4:56:30 (62.65) (args: 2) */ int esc16d_flow[] = { 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int esc16d_dist[] = { 0, 0, 0, 1, 0, 1, 1, 2, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 1, 0, 1, 0, 2, 1, 1, 0, 2, 1, 2, 1, 3, 2, 0, 1, 0, 0, 1, 2, 0, 1, 1, 2, 0, 1, 2, 3, 1, 2, 1, 0, 0, 0, 2, 1, 1, 0, 2, 1, 1, 0, 3, 2, 2, 1, 0, 1, 1, 2, 0, 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 2, 1, 0, 2, 1, 0, 0, 1, 0, 2, 1, 3, 2, 1, 0, 2, 1, 1, 2, 0, 1, 0, 1, 0, 0, 2, 3, 1, 2, 1, 2, 0, 1, 2, 1, 1, 0, 1, 0, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 0, 1, 0, 1, 1, 2, 1, 0, 2, 1, 2, 1, 3, 2, 0, 0, 1, 0, 1, 0, 2, 1, 1, 2, 0, 1, 2, 3, 1, 2, 0, 1, 0, 0, 1, 2, 0, 1, 2, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 1, 2, 2, 3, 0, 1, 1, 2, 0, 1, 1, 2, 0, 0, 0, 1, 2, 1, 3, 2, 1, 0, 2, 1, 1, 0, 2, 1, 0, 0, 1, 0, 2, 3, 1, 2, 1, 2, 0, 1, 1, 2, 0, 1, 0, 1, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 2, 1, 1, 0, 1, 0, 0, 0 }; int esc16d_sol[] = { 14, 2, 12, 5, 6, 16, 8, 10, 3, 9, 13, 7, 11, 15, 4, 1 }; // 14 2 1 5 6 4 10 7 12 8 16 11 3 15 9 13 // 1 7 2 3 4 5 8 9 16 11 15 14 10 13 6 12 QAP(esc16d, 16, 16, esc16d_sol); /* diaz: 16 - +10:20:00 ism: 4 - 0:26 (0.21) (args: 14 2 12 5 6) 1:55 (19.21) (args: 14 2 12 5) 29:16 (7:43) (args: 14 2 12) 5:45:38 (7:39) (args: 14 2) 3d 14:23:06 (3:26) (args: 14) .... (1:35) ingrid: 64x1 (big8) 23:30:28 */ int esc16e_flow[] = { 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 2, 3, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 2, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 3, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int esc16e_dist[] = { 0, 0, 0, 1, 0, 1, 1, 2, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 1, 0, 1, 0, 2, 1, 1, 0, 2, 1, 2, 1, 3, 2, 0, 1, 0, 0, 1, 2, 0, 1, 1, 2, 0, 1, 2, 3, 1, 2, 1, 0, 0, 0, 2, 1, 1, 0, 2, 1, 1, 0, 3, 2, 2, 1, 0, 1, 1, 2, 0, 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 2, 1, 0, 2, 1, 0, 0, 1, 0, 2, 1, 3, 2, 1, 0, 2, 1, 1, 2, 0, 1, 0, 1, 0, 0, 2, 3, 1, 2, 1, 2, 0, 1, 2, 1, 1, 0, 1, 0, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 0, 1, 0, 1, 1, 2, 1, 0, 2, 1, 2, 1, 3, 2, 0, 0, 1, 0, 1, 0, 2, 1, 1, 2, 0, 1, 2, 3, 1, 2, 0, 1, 0, 0, 1, 2, 0, 1, 2, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 1, 2, 2, 3, 0, 1, 1, 2, 0, 1, 1, 2, 0, 0, 0, 1, 2, 1, 3, 2, 1, 0, 2, 1, 1, 0, 2, 1, 0, 0, 1, 0, 2, 3, 1, 2, 1, 2, 0, 1, 1, 2, 0, 1, 0, 1, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 2, 1, 1, 0, 1, 0, 0, 0 }; int esc16e_sol[] = { 1, 4, 2, 3, 13, 7, 5, 15, 11, 6, 8, 9, 10, 12, 14, 16 }; // 16 7 8 15 9 12 14 10 11 2 6 5 13 4 3 1 QAP(esc16e, 16, 28, esc16e_sol); int esc16f_flow[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int esc16f_dist[] = { 0, 0, 0, 1, 0, 1, 1, 2, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 1, 0, 1, 0, 2, 1, 1, 0, 2, 1, 2, 1, 3, 2, 0, 1, 0, 0, 1, 2, 0, 1, 1, 2, 0, 1, 2, 3, 1, 2, 1, 0, 0, 0, 2, 1, 1, 0, 2, 1, 1, 0, 3, 2, 2, 1, 0, 1, 1, 2, 0, 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 2, 1, 0, 2, 1, 0, 0, 1, 0, 2, 1, 3, 2, 1, 0, 2, 1, 1, 2, 0, 1, 0, 1, 0, 0, 2, 3, 1, 2, 1, 2, 0, 1, 2, 1, 1, 0, 1, 0, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 0, 1, 0, 1, 1, 2, 1, 0, 2, 1, 2, 1, 3, 2, 0, 0, 1, 0, 1, 0, 2, 1, 1, 2, 0, 1, 2, 3, 1, 2, 0, 1, 0, 0, 1, 2, 0, 1, 2, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 1, 2, 2, 3, 0, 1, 1, 2, 0, 1, 1, 2, 0, 0, 0, 1, 2, 1, 3, 2, 1, 0, 2, 1, 1, 0, 2, 1, 0, 0, 1, 0, 2, 3, 1, 2, 1, 2, 0, 1, 1, 2, 0, 1, 0, 1, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 2, 1, 1, 0, 1, 0, 0, 0 }; QAP(esc16f, 16, 0, 0 /* qualquer */); int esc16g_flow[] = { 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 1, 0, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 2, 3, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; #define esc16g_dist esc16f_dist int esc16g_sol[] = { 1, 4, 2, 8, 3, 7, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16 }; QAP(esc16g, 16, 26, esc16g_sol); int esc16h_flow[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 7, 7, 7, 7, 7, 7, 7, 1, 1, 1, 0, 1, 1, 1, 1, 7, 0, 21, 21, 21, 21, 21, 21, 2, 2, 2, 1, 1, 1, 1, 1, 7, 21, 0, 21, 21, 21, 21, 21, 2, 2, 2, 1, 1, 1, 1, 1, 7, 21, 21, 0, 21, 21, 21, 21, 2, 2, 2, 1, 1, 1, 1, 1, 7, 21, 21, 21, 0, 21, 21, 21, 2, 2, 2, 1, 1, 1, 1, 1, 7, 21, 21, 21, 21, 0, 21, 21, 2, 2, 2, 1, 1, 1, 1, 1, 7, 21, 21, 21, 21, 21, 0, 21, 2, 2, 2, 1, 1, 1, 1, 1, 7, 21, 21, 21, 21, 21, 21, 0, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 6, 6, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 6, 0, 6, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 6, 6, 0, 4, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 }; #define esc16h_dist esc16a_dist int esc16h_sol[] = { 13, 9, 10, 15, 3, 11, 4, 16, 12, 7, 8, 5, 6, 2, 1, 14 }; QAP(esc16h, 16, 996, esc16h_sol); int esc16i_flow[] = { 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int esc16i_dist[] = { 0, 0, 0, 1, 0, 1, 1, 2, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 1, 0, 1, 0, 2, 1, 1, 0, 2, 1, 2, 1, 3, 2, 0, 1, 0, 0, 1, 2, 0, 1, 1, 2, 0, 1, 2, 3, 1, 2, 1, 0, 0, 0, 2, 1, 1, 0, 2, 1, 1, 0, 3, 2, 2, 1, 0, 1, 1, 2, 0, 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 2, 1, 0, 2, 1, 0, 0, 1, 0, 2, 1, 3, 2, 1, 0, 2, 1, 1, 2, 0, 1, 0, 1, 0, 0, 2, 3, 1, 2, 1, 2, 0, 1, 2, 1, 1, 0, 1, 0, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 0, 1, 0, 1, 1, 2, 1, 0, 2, 1, 2, 1, 3, 2, 0, 0, 1, 0, 1, 0, 2, 1, 1, 2, 0, 1, 2, 3, 1, 2, 0, 1, 0, 0, 1, 2, 0, 1, 2, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 1, 2, 2, 3, 0, 1, 1, 2, 0, 1, 1, 2, 0, 0, 0, 1, 2, 1, 3, 2, 1, 0, 2, 1, 1, 0, 2, 1, 0, 0, 1, 0, 2, 3, 1, 2, 1, 2, 0, 1, 1, 2, 0, 1, 0, 1, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 2, 1, 1, 0, 1, 0, 0, 0 }; int esc16i_sol[] = { 13, 9, 11, 3, 7, 5, 6, 2, 1, 15, 4, 14, 12, 10, 8, 16 }; // 1 2 3 4 8 6 5 7 15 9 10 11 12 13 14 16 QAP(esc16i, 16, 14, esc16i_sol); /* sunfire: 16 - 1:59; 8 - 4:09; 4 - 8:22; 2 - 16:50; 1 - 32:45 (generic) 16.47 7.88 3.91 1.95 16 - 1:14; 8 - 2:30; 4 - 5:03; 2 - 10:09; 1 - 21:32 17.42 8.61 4.27 2.12 diaz: 16 - 1:37; 12 - 1:45; 8 - 1:57; 7 - 2:13; 6 - 2:36; 5 - 3:07; 9.33 8.56 7.71 6.75 5.79 4.83 4 - 3:53; 3 - 5:08; 2 - 7:30; 1 - 15:00 (generic) 3.86 2.93 2.00 16 - 0:58; 12 - 1:03; 8 - 1:09; 7 - 1:18; 6 - 1:31; 5 - 1:50; 9.10 8.44 7.74 6.77 5.81 4.84 4 - 2:17; 3 - 3:01; 2 - 4:24; 1 - 8:51 3.87 2.94 2.01 ism: 4 - 0:40 (0.15); 3 - 0:54 (0.18); 2 - 1:20 (0.21) 1 - 2:41 (0.21) 3.98 2.99 2.00 2 * 4 - 0:21 (0.09) 7.54 ccciti01: 4 - 0:52 (0.14); 3 - 1:10 (0.12); 2 - 1:45 (0.16); 1 - 3:29 (0.16) (first-fail) 4.01 3.00 2.00 4 - 0:09 (0.04); 3 - 0:13 (0.03); 2 - 0:19 (0.04); 1 - 0:38 (0.04) (B, first-fail) 4.07 3.00 1.97 bicho: 5:12 (0.44) (-O3) 5:13 (0.28) (-O3, label) 0:44 (0.09) (B, -O3) qap.pl 3:34 (0.65) 710277120 solutions (ism * 6, 11:46:42.261) */ int esc16j_flow[] = { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int esc16j_dist[] = { 0, 0, 0, 1, 0, 1, 1, 2, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 1, 0, 1, 0, 2, 1, 1, 0, 2, 1, 2, 1, 3, 2, 0, 1, 0, 0, 1, 2, 0, 1, 1, 2, 0, 1, 2, 3, 1, 2, 1, 0, 0, 0, 2, 1, 1, 0, 2, 1, 1, 0, 3, 2, 2, 1, 0, 1, 1, 2, 0, 0, 0, 1, 1, 2, 2, 3, 0, 1, 1, 2, 1, 0, 2, 1, 0, 0, 1, 0, 2, 1, 3, 2, 1, 0, 2, 1, 1, 2, 0, 1, 0, 1, 0, 0, 2, 3, 1, 2, 1, 2, 0, 1, 2, 1, 1, 0, 1, 0, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 0, 1, 1, 2, 1, 2, 2, 3, 0, 0, 0, 1, 0, 1, 1, 2, 1, 0, 2, 1, 2, 1, 3, 2, 0, 0, 1, 0, 1, 0, 2, 1, 1, 2, 0, 1, 2, 3, 1, 2, 0, 1, 0, 0, 1, 2, 0, 1, 2, 1, 1, 0, 3, 2, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 1, 2, 2, 3, 0, 1, 1, 2, 0, 1, 1, 2, 0, 0, 0, 1, 2, 1, 3, 2, 1, 0, 2, 1, 1, 0, 2, 1, 0, 0, 1, 0, 2, 3, 1, 2, 1, 2, 0, 1, 1, 2, 0, 1, 0, 1, 0, 0, 3, 2, 2, 1, 2, 1, 1, 0, 2, 1, 1, 0, 1, 0, 0, 0 }; #define esc16j_opt 8 int esc16j_sol[] = { 8, 3, 16, 14, 2, 12, 10, 6, 9, 5, 13, 11, 4, 7, 15, 1 }; // 4 5 1 2 7 11 15 8 6 9 10 13 3 12 14 16 // 1 2 4 6 7 11 15 5 8 10 12 13 3 9 14 16 QAP(esc16j, 16, 8, esc16j_sol); /* ism: 5 x 4 - 2:33:37.49 */ int esc32a_flow[] = { 0,1,1,0,0,1,0,0,0,0,1,0,4,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, 1,0,1,0,2,0,0,0,1,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,0,4,0,0,0,0,3,0,0,0,0,0,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,4,0,1,1,0,0,3,0,0,0,0,0,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,2,0,1,0,1,0,0,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,0,0,0,2,0,3,2,1,0,3,0,0,0,0,0, 0,1,3,3,1,0,0,0,0,0,0,0,0,1,3,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, 1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,1,0,0,0,3,0,0,0,0,0,0, 4,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, 0,4,0,0,2,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,3,3,0,0,0,0,3,0,0,0,1,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,0,2,0,3,2,0,2,2,0,0,0,0,0, 0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0, 0,0,3,3,0,0,0,0,3,0,0,0,0,0,4,0,0,0,2,0,1,0,0,1,0,0,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,1,2,0,0,1,0,0,1,0,0,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,1,1,0,0,0,4,3,0,0,3,0,0,0,0,0, 1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,4,0,0,2,0,0,2,0,0,0,0,0, 0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,2,0,1,1,0,3,0,2,0,0,0,3,0,0,0,0,0, 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,1,1,1,0,3,1,2,3,2,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; int esc32a_dist[] = { 0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4, 0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3, 0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3, 1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2, 0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3, 1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2, 1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2, 2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1, 0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3, 1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2, 1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2, 2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1, 1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2, 2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1, 2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1, 3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0, 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3, 1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2, 1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2, 2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1, 1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2, 2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1, 2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1, 3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0, 1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2, 2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1, 2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1, 3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0, 2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1, 3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0, 3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0, 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0 }; int esc32a_sol[] = { 11, 3, 7, 23, 19, 27, 1, 14, 20, 17, 28, 9, 12, 4, 8, 2, 26, 24, 32, 5, 22, 25, 6, 18, 29, 10, 30, 13, 15, 16, 21, 31 }; QAP(esc32a, 32, 130, esc32a_sol); int esc32e_flow[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,5,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; int esc32e_dist[] = { 0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4, 0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3, 0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3, 1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2, 0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3, 1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2, 1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2, 2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1, 0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3, 1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2, 1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2, 2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1, 1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2, 2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1, 2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1, 3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0, 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3, 1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2, 1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2, 2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1, 1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2, 2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1, 2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1, 3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0, 1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2, 2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1, 2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1, 3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0, 2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1, 3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0, 3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0, 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0 }; #define esc32e_opt 2 int esc32e_sol[] = { 1, 2, 5, 6, 8, 16, 13, 19, 9, 32, 7, 22, 24, 20, 4, 12, 3, 17, 29, 21, 11, 25, 27, 18, 30, 31, 23, 28, 14, 15, 26, 10 }; QAP(esc32e, 32, 2, esc32e_sol); /* ism: 4 - 3:30 (?) (A, first-fail, args: 1 2 3 4) 4 - 1:11:24 (?) (A, first-fail, args: 1 2 3) 1 x 4 - +1h41 (3.00) diaz: 4 - 0.36 (0.34) (B, first-fail, args: 1 2 3 4 5 6 7 8) 4 - 0.25 (0.02) (B, first-fail, args: 1 2 3 4 5 6 7) 4 - +10h12 (0.02) (B, first-fail, args: 1 2 3 4 5 6) */ int esc64a_flow[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,0,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,1,0,1,0,1,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,1,0,0,0,2,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,1,0,0,2,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; int esc64a_dist[] = { 0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, 0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4, 0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4, 1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3, 0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4, 1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3, 1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3, 2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2, 0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4, 1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3, 1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3, 2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2, 1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3, 2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2, 2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2, 3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1, 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4, 1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3, 1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3, 2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2, 1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3, 2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2, 2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2, 3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1, 1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3, 2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2, 2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2, 3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1, 2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2, 3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1, 3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1, 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0, 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4, 1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3, 1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3, 2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2, 1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3, 2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2, 2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2, 3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1, 1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3, 2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2, 2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2, 3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1, 2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2, 3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1, 3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1, 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0, 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3, 2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2, 2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2, 3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1, 2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2, 3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1, 3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1, 4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0, 2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2, 3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1, 3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1, 4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0, 3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1, 4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0, 4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0, 5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0, }; QAP(esc64a, 64, -98); int esc128_flow[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; int esc128_dist[] = { 0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6, 0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5, 0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5, 1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4, 0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5, 1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4, 1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4, 2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3, 0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5, 1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4, 1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4, 2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3, 1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4, 2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3, 2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3, 3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2, 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, 1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4, 1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4, 2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3, 1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4, 2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3, 2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3, 3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2, 1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4, 2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3, 2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3, 3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2, 2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3, 3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2, 3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2, 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1, 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, 1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4, 1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4, 2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3, 1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4, 2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3, 2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3, 3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2, 1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4, 2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3, 2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3, 3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2, 2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3, 3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2, 3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2, 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1, 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4, 2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3, 2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3, 3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2, 2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3, 3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2, 3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2, 4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1, 2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3, 3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2, 3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2, 4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1, 3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2, 4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1, 4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1, 5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0, 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5, 1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4, 1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4, 2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3, 1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4, 2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3, 2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3, 3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2, 1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4, 2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3, 2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3, 3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2, 2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3, 3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2, 3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2, 4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1, 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4, 2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3, 2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3, 3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2, 2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3, 3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2, 3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2, 4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1, 2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3, 3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2, 3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2, 4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1, 3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2, 4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1, 4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1, 5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0, 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4, 2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3, 2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3, 3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2, 2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3, 3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2, 3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2, 4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1, 2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3, 3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2, 3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2, 4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1, 3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2, 4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1, 4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1, 5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0, 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,0,0,1,0,1,1,2,0,1,1,2,1,2,2,3, 3,2,4,3,4,3,5,4,4,3,5,4,5,4,6,5,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,0,0,1,0,1,0,2,1,1,0,2,1,2,1,3,2, 3,4,2,3,4,5,3,4,4,5,3,4,5,6,4,5,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,0,1,0,0,1,2,0,1,1,2,0,1,2,3,1,2, 4,3,3,2,5,4,4,3,5,4,4,3,6,5,5,4,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,1,0,0,0,2,1,1,0,2,1,1,0,3,2,2,1, 3,4,4,5,2,3,3,4,4,5,5,6,3,4,4,5,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,0,1,1,2,0,0,0,1,1,2,2,3,0,1,1,2, 4,3,5,4,3,2,4,3,5,4,6,5,4,3,5,4,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,1,0,2,1,0,0,1,0,2,1,3,2,1,0,2,1, 4,5,3,4,3,4,2,3,5,6,4,5,4,5,3,4,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,1,2,0,1,0,1,0,0,2,3,1,2,1,2,0,1, 5,4,4,3,4,3,3,2,6,5,5,4,5,4,4,3,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,2,1,1,0,1,0,0,0,3,2,2,1,2,1,1,0, 3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,0,1,1,2,1,2,2,3,0,1,1,2,1,2,2,3,0,0,0,1,0,1,1,2, 4,3,5,4,5,4,6,5,3,2,4,3,4,3,5,4,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,3,2,4,3,4,3,5,4,2,1,3,2,3,2,4,3,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,2,1,3,2,3,2,4,3,1,0,2,1,2,1,3,2,1,0,2,1,2,1,3,2,0,0,1,0,1,0,2,1, 4,5,3,4,5,6,4,5,3,4,2,3,4,5,3,4,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,3,4,2,3,4,5,3,4,2,3,1,2,3,4,2,3,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,2,3,1,2,3,4,2,3,1,2,0,1,2,3,1,2,1,2,0,1,2,3,1,2,0,1,0,0,1,2,0,1, 5,4,4,3,6,5,5,4,4,3,3,2,5,4,4,3,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,4,3,3,2,5,4,4,3,3,2,2,1,4,3,3,2,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,3,2,2,1,4,3,3,2,2,1,1,0,3,2,2,1,2,1,1,0,3,2,2,1,1,0,0,0,2,1,1,0, 4,5,5,6,3,4,4,5,3,4,4,5,2,3,3,4,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,3,4,4,5,2,3,3,4,2,3,3,4,1,2,2,3,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,2,3,3,4,1,2,2,3,1,2,2,3,0,1,1,2,1,2,2,3,0,1,1,2,0,1,1,2,0,0,0,1, 5,4,6,5,4,3,5,4,4,3,5,4,3,2,4,3,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,4,3,5,4,3,2,4,3,3,2,4,3,2,1,3,2,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,3,2,4,3,2,1,3,2,2,1,3,2,1,0,2,1,2,1,3,2,1,0,2,1,1,0,2,1,0,0,1,0, 5,6,4,5,4,5,3,4,4,5,3,4,3,4,2,3,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,4,5,3,4,3,4,2,3,3,4,2,3,2,3,1,2,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,3,4,2,3,2,3,1,2,2,3,1,2,1,2,0,1,2,3,1,2,1,2,0,1,1,2,0,1,0,1,0,0, 6,5,5,4,5,4,4,3,5,4,4,3,4,3,3,2,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,5,4,4,3,4,3,3,2,4,3,3,2,3,2,2,1,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,4,3,3,2,3,2,2,1,3,2,2,1,2,1,1,0,3,2,2,1,2,1,1,0,2,1,1,0,1,0,0,0 }; int esc128_sol[] = { 9, 92, 87, 19, 110, 114, 76, 8, 117, 77, 44, 16, 28, 97, 81, 99, 66, 18, 36, 10, 79, 108, 82, 57, 58, 78, 11, 109, 12, 14, 41, 125, 45, 113, 33, 37, 69, 22, 39, 104, 73, 103, 101, 93, 120, 74, 96, 88, 23, 30, 86, 52, 94, 106, 90, 102, 72, 89, 60, 98, 59, 83, 100, 115, 105, 62, 123, 124, 56, 65, 64, 24, 54, 122, 46, 7, 40, 49, 48, 38, 127, 61, 25, 26, 91, 21, 128, 80, 119, 51, 32, 6, 70, 126, 2, 4, 27, 68, 50, 107, 53, 13, 67, 63, 121, 1, 47, 15, 29, 95, 111, 35, 112, 42, 17, 3, 71, 118, 116, 43, 34, 55, 31, 84, 75, 20, 5, 85 }; /* * ??? (from QAPlib, cost is 314, 64 in the dual problem) 80, 75, 66, 79, 71, 73, 77, 69, 20, 6, 49, 25, 115, 81, 122, 119, 85, 91, 32, 28, 48, 87, 9, 5, 123, 126, 16, 26, 47, 94, 120, 92, 43, 2, 11, 72, 12, 27, 128, 46, 62, 57, 21, 86, 30, 58, 98, 10, 125, 78, 116, 45, 84, 70, 41, 54, 106, 99, 38, 18, 52, 34, 7, 105, 36, 110, 35, 63, 31, 90, 33, 111, 55, 60, 96, 23, 83, 117, 8, 82, 67, 29, 114, 97, 51, 108, 76, 113, 101, 124, 14, 65, 53, 88, 107, 59, 40, 44, 127, 37, 42, 24, 112, 104, 64, 74, 15, 17, 95, 19, 50, 13, 4, 102, 103, 39, 56, 68, 109, 118, 100, 121, 1, 93, 3, 61, 89, 22 * corresponding solution for the original problem (cost 64) 123, 34, 125, 113, 24, 10, 63, 79, 23, 48, 35, 37, 112, 91, 107, 27, 108, 60, 110, 9, 43, 128, 76, 102, 12, 28, 38, 20, 82, 45, 69, 19, 71, 62, 67, 65, 100, 59, 116, 97, 55, 101, 33, 98, 52, 40, 29, 21, 11, 111, 85, 61, 93, 56, 73, 117, 42, 46, 96, 74, 126, 41, 68, 105, 92, 3, 81, 118, 8, 54, 5, 36, 6, 106, 2, 87, 7, 50, 4, 1, 14, 80, 77, 53, 17, 44, 22, 94, 127, 70, 18, 32, 124, 30, 109, 75, 84, 47, 58, 121, 89, 114, 115, 104, 64, 57, 95, 86, 119, 66, 72, 103, 88, 83, 13, 51, 78, 120, 16, 31, 122, 15, 25, 90, 49, 26, 99, 39 */ QAP(esc128, 128, 64, esc128_sol); /* from: Darwin Choi, Quadratic Assignment Problems (QAP) and Its Size Reduction Method. Undergraduate Math Journal, 4(1), Rose-Hulman Institute of Technology, 2003. */ int choi16_flow[] = { 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9 }; int choi16_dist[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 7, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; QAP(choi16, 16); // obtained from choi16 by assigning resource 1 to location 1 and // reducing the problem int choi15_flow[] = { 16, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 6, 1, 4, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 8, 3, 2, 10, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 7, 4, 6, 8, 16, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 6, 1, 9, 2, 6, 1, 4, 2, 6, 1, 9, 2, 6, 1, 9, 8, 3, 2, 5, 8, 3, 2, 10, 8, 3, 2, 5, 8, 3, 2, 7, 4, 6, 8, 7, 4, 6, 8, 16, 4, 6, 8, 7, 4, 6, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 4, 2, 6, 1, 9, 8, 3, 2, 5, 8, 3, 2, 5, 8, 3, 2, 10, 8, 3, 2, 7, 4, 6, 8, 7, 4, 6, 8, 7, 4, 6, 8, 16, 4, 6, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 3, 4, 6, 1, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 9, 2, 6, 1, 4 }; int choi15_dist[] = { 1, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 2, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 3, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 4, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 5, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 6, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 7, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 8, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 7, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 6, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 5, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 4, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 3, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 2, 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1, 1 }; QAP(choi15, 15);