7 S4(0, 1, 2, 2, 1, 1, 2, 2);
8 S3(0, 1, 1, 2, 1, 1, 1, 2);
9 S2(0, 1, 1, 1, 1, 1, 2, 1);
12 for (int c0
= 1; c0
< 2 * m
- 3; c0
+= 1) {
14 S5(m
- 2, 1, m
- 1, 1, m
- 1, 1, m
, 1);
16 S3(m
- 1, 1, m
, 2, m
, 1, m
, 2);
17 } else if (m
>= c0
+ 2) {
18 S5(c0
- 1, 1, c0
, 1, c0
, 1, c0
+ 1, 1);
20 S4(c0
, 1, c0
+ 2, 2, c0
+ 1, 1, c0
+ 2, 2);
21 S2(c0
, 1, c0
+ 1, 1, c0
+ 1, 1, c0
+ 2, 1);
22 S3(c0
, 1, c0
+ 1, 2, c0
+ 1, 1, c0
+ 1, 2);
24 S5(c0
- 1, -m
+ c0
+ 2, c0
, -m
+ c0
+ 2, m
- 1, -m
+ c0
+ 2, m
, -m
+ c0
+ 2);
25 S6(c0
- 1, -m
+ c0
+ 1, c0
, -m
+ c0
+ 2, m
, -m
+ c0
+ 1, m
, -m
+ c0
+ 2);
26 S1(c0
, -m
+ c0
+ 2, m
, -m
+ c0
+ 2);
27 S3(c0
, -m
+ c0
+ 2, c0
+ 1, -m
+ c0
+ 3, m
, -m
+ c0
+ 2, m
, -m
+ c0
+ 3);
29 for (int c1
= max(2, -m
+ c0
+ 3); c1
<= min(m
- 1, c0
); c1
+= 1) {
30 S5(c0
- 1, c1
, c0
, c1
, c0
- c1
+ 1, c1
, c0
- c1
+ 2, c1
);
31 S6(c0
- 1, c1
- 1, c0
, c1
, c0
- c1
+ 2, c1
- 1, c0
- c1
+ 2, c1
);
32 S7(c0
- 1, c1
- 1, c0
+ 1, c1
, c0
- c1
+ 2, c1
- 1, c0
- c1
+ 3, c1
);
33 S1(c0
, c1
, c0
- c1
+ 2, c1
);
34 S4(c0
, c1
, c0
+ 2, c1
+ 1, c0
- c1
+ 2, c1
, c0
- c1
+ 3, c1
+ 1);
35 S2(c0
, c1
, c0
+ 1, c1
, c0
- c1
+ 2, c1
, c0
- c1
+ 3, c1
);
36 S3(c0
, c1
, c0
+ 1, c1
+ 1, c0
- c1
+ 2, c1
, c0
- c1
+ 2, c1
+ 1);
39 S7(m
- 2, m
- 1, m
, m
, 1, m
- 1, 2, m
);
40 S6(m
- 2, m
- 1, m
- 1, m
, 1, m
- 1, 1, m
);
42 S2(m
- 1, m
, m
, m
, 1, m
, 2, m
);
43 } else if (m
>= c0
+ 2) {
44 S7(c0
- 1, c0
, c0
+ 1, c0
+ 1, 1, c0
, 2, c0
+ 1);
45 S6(c0
- 1, c0
, c0
, c0
+ 1, 1, c0
, 1, c0
+ 1);
46 S1(c0
, c0
+ 1, 1, c0
+ 1);
47 S4(c0
, c0
+ 1, c0
+ 2, c0
+ 2, 1, c0
+ 1, 2, c0
+ 2);
48 S2(c0
, c0
+ 1, c0
+ 1, c0
+ 1, 1, c0
+ 1, 2, c0
+ 1);
49 S3(c0
, c0
+ 1, c0
+ 1, c0
+ 2, 1, c0
+ 1, 1, c0
+ 2);
51 S5(c0
- 1, m
, c0
, m
, -m
+ c0
+ 1, m
, -m
+ c0
+ 2, m
);
52 S7(c0
- 1, m
- 1, c0
+ 1, m
, -m
+ c0
+ 2, m
- 1, -m
+ c0
+ 3, m
);
53 S6(c0
- 1, m
- 1, c0
, m
, -m
+ c0
+ 2, m
- 1, -m
+ c0
+ 2, m
);
54 S1(c0
, m
, -m
+ c0
+ 2, m
);
55 S2(c0
, m
, c0
+ 1, m
, -m
+ c0
+ 2, m
, -m
+ c0
+ 3, m
);
57 for (int c2
= max(1, -m
+ c0
+ 2); c2
<= min(m
, c0
+ 1); c2
+= 1)
62 S5(2 * m
- 4, m
- 1, 2 * m
- 3, m
- 1, m
- 1, m
- 1, m
, m
- 1);
63 S6(2 * m
- 4, m
- 2, 2 * m
- 3, m
- 1, m
, m
- 2, m
, m
- 1);
64 S1(2 * m
- 3, m
- 1, m
, m
- 1);
65 S3(2 * m
- 3, m
- 1, 2 * m
- 2, m
, m
, m
- 1, m
, m
);
66 S5(2 * m
- 4, m
, 2 * m
- 3, m
, m
- 2, m
, m
- 1, m
);
67 S7(2 * m
- 4, m
- 1, 2 * m
- 2, m
, m
- 1, m
- 1, m
, m
);
68 S6(2 * m
- 4, m
- 1, 2 * m
- 3, m
, m
- 1, m
- 1, m
- 1, m
);
69 S1(2 * m
- 3, m
, m
- 1, m
);
71 S5(0, 1, 1, 1, 1, 1, 2, 1);
73 S3(1, 1, 2, 2, 2, 1, 2, 2);
74 S7(0, 1, 2, 2, 1, 1, 2, 2);
75 S6(0, 1, 1, 2, 1, 1, 1, 2);
78 S2(2 * m
- 3, m
, 2 * m
- 2, m
, m
- 1, m
, m
, m
);
79 for (int c2
= m
- 1; c2
<= m
; c2
+= 1)
81 S5(2 * m
- 3, m
, 2 * m
- 2, m
, m
- 1, m
, m
, m
);
82 S6(2 * m
- 3, m
- 1, 2 * m
- 2, m
, m
, m
- 1, m
, m
);
83 S1(2 * m
- 2, m
, m
, m
);