1 {
2   for (int c0 = -27 * n + 2; c0 <= 1; c0 += 1)
3     S1(c0 - 1);
4   for (int c0 = 2; c0 <= n + 29; c0 += 1) {
5     if (c0 >= 3) {
6       S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
7       if (c0 >= 5 && 2 * n >= c0 + 3) {
8         S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
9         for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1)
10           S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
11       }
12       for (int c1 = -c0 + c0 / 2 + 3; c1 <= min(-1, n - c0); c1 += 1) {
13         S6(-c1 + 2, c0 + c1 - 2);
14         S4(-c1, c0 + c1);
15         for (int c2 = 1; c2 <= -c1; c2 += 1)
16           S5(-c1 + 1, c0 + c1 - 1, c2);
17       }
18       if (2 * n >= c0 + 3 && c0 >= n + 2) {
19         S6(-n + c0 + 1, n - 1);
20         for (int c2 = 1; c2 < -n + c0; c2 += 1)
21           S5(-n + c0, n, c2);
22         if (c0 == n + 2) {
23           S1(n + 1);
24           S6(2, n);
25         }
26       } else if (c0 + 2 >= 2 * n) {
27         for (int c2 = 1; c2 < -n + c0; c2 += 1)
28           S5(-n + c0, n, c2);
29       }
30       if (c0 >= n + 3) {
31         S6(-n + c0, n);
32         S1(c0 - 1);
33       } else {
34         if (c0 >= 5 && n + 1 >= c0) {
35           S1(c0 - 1);
36           S6(2, c0 - 2);
37         } else if (c0 <= 4) {
38           S1(c0 - 1);
39         }
40         if (n + 1 >= c0)
41           S6(1, c0 - 1);
42       }
43     } else {
44       S1(1);
45     }
46     if (c0 % 2 == 0)
47       S3(c0 / 2);
48     for (int c1 = max(1, -n + c0); c1 < (c0 + 1) / 2; c1 += 1)
49       S2(c0 - c1, c1);
50   }
51   for (int c0 = n + 30; c0 <= 2 * n; c0 += 1) {
52     if (2 * n >= c0 + 1) {
53       S4(c0 - c0 / 2 - 1, c0 / 2 + 1);
54       if (c0 + 2 >= 2 * n) {
55         for (int c2 = 1; c2 < -n + c0; c2 += 1)
56           S5(-n + c0, n, c2);
57       } else {
58         S4(c0 - c0 / 2 - 2, c0 / 2 + 2);
59         for (int c2 = 1; c2 < c0 - c0 / 2 - 1; c2 += 1)
60           S5(c0 - c0 / 2 - 1, c0 / 2 + 1, c2);
61       }
62       for (int c1 = -c0 + c0 / 2 + 3; c1 <= n - c0; c1 += 1) {
63         S6(-c1 + 2, c0 + c1 - 2);
64         S4(-c1, c0 + c1);
65         for (int c2 = 1; c2 <= -c1; c2 += 1)
66           S5(-c1 + 1, c0 + c1 - 1, c2);
67       }
68       if (2 * n >= c0 + 3) {
69         S6(-n + c0 + 1, n - 1);
70         for (int c2 = 1; c2 < -n + c0; c2 += 1)
71           S5(-n + c0, n, c2);
72       }
73       S6(-n + c0, n);
74     }
75     if (c0 % 2 == 0)
76       S3(c0 / 2);
77     for (int c1 = -n + c0; c1 < (c0 + 1) / 2; c1 += 1)
78       S2(c0 - c1, c1);
79   }
80 }
81