First commit : 0.14.0 version (with roadmap in doc instead of
[cloog.git] / test / reports / kim_daegon_27-04-2005.eml
blobb43a058c99e65692c95114ccfe8826e30e8c2196
1 X-UIDL: 38762.1114626251
2 X-Mozilla-Status: 0003
3 X-Mozilla-Status2: 00000000
4 Received: from soleil.uvsq.fr (soleil.uvsq.fr [193.51.24.1])
5         by relay-6m.club-internet.fr (Postfix) with ESMTP id DCFE125639
6         for <netced@club-internet.fr>; Wed, 27 Apr 2005 20:24:09 +0200 (CEST)
7 Received: from torquenada.prism.uvsq.fr (torquenada.prism.uvsq.fr [193.51.25.9])
8           by soleil.uvsq.fr (8.12.11/jtpda-5.4) with ESMTP id j3RIO8Nk002407
9           for <netced@club-internet.fr>; Wed, 27 Apr 2005 20:24:09 +0200 (CEST)
10 Received: from soleil.uvsq.fr (root@soleil.uvsq.fr [193.51.24.1])
11           by torquenada.prism.uvsq.fr (8.11.4/jtpda-5.3.2) with ESMTP id j3RIO7C02410
12           for <cedric.bastoul@prism.uvsq.fr>; Wed, 27 Apr 2005 20:24:08 +0200 (MEST)
13 Received: from wproxy.gmail.com (wproxy.gmail.com [64.233.184.205])
14           by soleil.uvsq.fr (8.12.11/jtpda-5.4) with ESMTP id j3RIO6e7001164
15           for <cedric.bastoul@prism.uvsq.fr>; Wed, 27 Apr 2005 20:24:06 +0200 (CEST)
16 Received: by wproxy.gmail.com with SMTP id 68so387084wri
17         for <cedric.bastoul@prism.uvsq.fr>; Wed, 27 Apr 2005 11:24:00 -0700 (PDT)
18 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
19         s=beta; d=gmail.com;
20         h=received:message-id:date:from:reply-to:to:subject:cc:mime-version:content-type;
21         b=LoJNXKibxMTIYItkoT/Sqykpnxxkeik4zUmMeWoVeasUn+yIfBWhF0UkkR0kHBRIeOFOZ/As82OpJ6TQiYZxy/WwuxyQ2aameC9qouWqE6R/dFG1zSY5MilV5/9RLrfinOfdyAoCZ1XzM6VMGspBtK4l5NBZYpsFxJBnVJ5AeW0=
22 Received: by 10.54.121.20 with SMTP id t20mr277933wrc;
23         Wed, 27 Apr 2005 10:24:00 -0700 (PDT)
24 Received: by 10.54.5.57 with HTTP; Wed, 27 Apr 2005 10:24:00 -0700 (PDT)
25 Message-ID: <fc5f19de05042710245f9acadd@mail.gmail.com>
26 Date: Wed, 27 Apr 2005 11:24:00 -0600
27 From: DaeGon Kim <daegonk@gmail.com>
28 Reply-To: DaeGon Kim <daegonk@gmail.com>
29 To: cedric.bastoul@prism.uvsq.fr
30 Subject: Question about Cloog
31 Cc: svr@cs.colostate.edu
32 Mime-Version: 1.0
33 Content-Type: multipart/mixed; 
34         boundary="----=_Part_1422_26966204.1114622640387"
35 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-1.7.5 (soleil.uvsq.fr [193.51.24.1]); Wed, 27 Apr 2005 20:24:09 +0200 (CEST)
36 X-Greylist: Delayed for 00:53:20 by milter-greylist-1.7.5 (soleil.uvsq.fr [193.51.24.1]); Wed, 27 Apr 2005 20:24:07 +0200 (CEST)
37 X-Miltered: at soleil.uvsq.fr with ID 426FD8C9.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)!
38 X-Miltered: at soleil.uvsq.fr with ID 426FD8C6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)!
39 X-Antivirus: scanned by sophie at soleil.uvsq.fr
40 X-Antivirus: scanned by sophie at soleil.uvsq.fr
41 Status:   
42 X-Mmail: \Recent                                 
43 X-M-Uid: 38762.1114626251
45 ------=_Part_1422_26966204.1114622640387
46 Content-Type: text/plain; charset=ISO-8859-1
47 Content-Transfer-Encoding: quoted-printable
48 Content-Disposition: inline
50 Hello Dr Cedric Bastoul,
52 I am a graduate student in CSU working with Dr. Sanjay Rajopadhye.
53 I am working on experiments on code generation software.=20
54 A few days ago I wrote three cloog input files: LUDom_cloog,
55 OSP_cloog, and LUDom_OSP_cloog. The last file is nothing but
56 concatenation of two previous files. So it has two statements since
57 each of the first two has one statement each.
59 When I generated, I got something strange:=20
60  - The numbers of visited points are different between the first two
61 and the last one.
62  - The numbers of visited points become different, if I use different
63 options: default and "-f 3".
64   - Domains of all statements are 3-dimensional, but there are
65 statements having only two indices inside one if block. I added
66 generated code below.
68 Also, I attached my three inputs and C programs in which generated
69 code from cloog can be executed. type1 files contain generated code
70 without any options and type2 files contains generated code with -f 3
71 option.
73 /* Generated from LUDom_OSP_cloog by CLooG v0.12.2 64 bits in 0.03s. */
74 for (I1=3D0;I1<=3D3*N1;I1++) {
75   for (I2=3Dmax(max(1,ceild(I1-2*N1+2,2)),I1-2*N1);I2<=3DN1;I2++) {
76     for (I3=3Dmax(max(I1-2*I2,ceild(I1-I2,2)),1);I3<=3Dmin(min(N1,floord(I1=
77 +2*I2-1,2)),I1-I2);I3++)
79       J3 =3D I1-(I2)-(I3) ;
80       S1(J1 =3D I2,J2 =3D I3) ;
81     }
82     for (I3=3Dceild(I1+2*I2,2);I3<=3Dmin(min(N1,I1-2*I2-1),floord(2*I1+3*I2=
83 ,3));I3++)
85       J3 =3D -I1-2*(I2)+2*I3 ;
86       S2(J1 =3D I2,J2 =3D I3) ;
87     }
88     for (I3=3Dmax(I1-2*I2,ceild(I1+2*I2,2));I3<=3Dmin(N1,floord(2*I1+I2-1,3=
89 ));I3++)
91       J3 =3D -I1-2*(I2)+2*I3 ;
92       S2(J1 =3D I2,J2 =3D I3) ;
93       J3 =3D I1-(I2)-(I3) ;
94       S1(J1 =3D I2,J2 =3D I3) ;
95     }
96     if ((2*I1+I2)%3 =3D=3D 0) {
97       I3 =3D (2*I1+I2)/3 ;
98       J1 =3D -2*I1+3*I3 ;
99       if ((2*I1+J1)%3 =3D=3D 0) {
100         J2 =3D (2*I1+J1)/3 ;
101         J3 =3D 3*I1-4*J2 ;
102         S1 ;
103         S2 ;
104       }
105     }
106     for (I3=3Dmax(I1-2*I2,ceild(2*I1+I2+1,3));I3<=3Dmin(min(N1,floord(2*I1+=
107 3*I2,3)),I1-I2);I3++)
109       J3 =3D I1-(I2)-(I3) ;
110       S1(J1 =3D I2,J2 =3D I3) ;
111       J3 =3D -I1-2*(I2)+2*I3 ;
112       S2(J1 =3D I2,J2 =3D I3) ;
113     }
114     for (I3=3Dmax(ceild(2*I1+3*I2+1,3),I1-2*I2);I3<=3Dmin(N1,I1-I2);I3++) {
115       J3 =3D I1-(I2)-(I3) ;
116       S1(J1 =3D I2,J2 =3D I3) ;
117     }
118     for (I3=3Dmax(ceild(I1+2*I2,2),I1-I2+1);I3<=3Dmin(floord(2*I1+3*I2,3),N=
119 1);I3++)
121       J3 =3D -I1-2*(I2)+2*I3 ;
122       S2(J1 =3D I2,J2 =3D I3) ;
123     }
124   }
128 Thank you for reading.
130 --=20
131 DaeGon Kim
133 Graduate Student, Computer Science Department,
134 Colorado State University, Fort Collins, CO
135 Tel. Office: (1) 970 491 5937
136 kim@cs.colostate.edu
137 Personal Homepage : http://www.roadtohome.com/
139 ------=_Part_1422_26966204.1114622640387
140 Content-Type: application/octet-stream; name=LUDom_cloog
141 Content-Transfer-Encoding: 7bit
142 Content-Disposition: attachment; filename="LUDom_cloog"
144 ###############################################################################
146 # Problem  : LU Decomposition
147 # Date     : 2005. 4. 25
148 # Author   : DaeGon Kim
150 ###############################################################################
152 ### Context -------------------------------------------------------------------
153    c # language is c
155    1          # Context 
156    1 3            # 1 lines and 3 coloumns
157    #  N1   1
158    1   1  -2      # N > 1
160    1              # 1 - Specify the names of parameters 
161    N1             # parameter names
162    
163 ### ----------------------------------------------------------------------------
165 ### Statements -----------------------------------------------------------------
166    1                             # number of statements
167    # first statement
168    1
169    7    6
170    # Eq/In  J       J       K       N1      Constants
171     1       1       0       0       0       -1       # 1 <= I
172     1       0       1       0       0       -1       # 1 <= J 
173     1       0       0       1       0       0        # 0 <= K
174     1      -1       0       0       1       0        # I <= N1
175     1       0      -1       0       1       0        # J <= N1
176     1       1       0      -1       0       0        # K <= I
177     1       0       1      -1       0       0        # K <= J
178     0       0       0
180     1                          # Iterators
181     J1  J2  J3                 # iterator names
182     
183 ### ----------------------------------------------------------------------------
186 ### Scattering Functions -------------------------------------------------------
188     1   # Number of scattering functions
189     
190     3 9
191     #   I1  I2  I3  I   J   K   N1  1
192     0   1   0   0  -1  -1  -1   0   0    # I1 = I+J+K 
193     0   0   1   0  -1   0   0   0   0    # I2 = I
194     0   0   0   1   0  -1   0   0   0    # I3 = J
196     
197     1          # Specify scattering dimension names
198     I1  I2  I3 # Scattering dimension names
200 ### ----------------------------------------------------------------------------
204 ------=_Part_1422_26966204.1114622640387
205 Content-Type: application/octet-stream; name=OSP_cloog
206 Content-Transfer-Encoding: 7bit
207 Content-Disposition: attachment; filename="OSP_cloog"
209 ###############################################################################
211 # Problem  : Optimal String Parentheses 
212 # Date     : 2005. 4. 25
213 # Author   : DaeGon Kim
215 ###############################################################################
217 ### Context -------------------------------------------------------------------
218     c           # language is c
219     1           # Context 
220     1 3         # 1 lines and 3 coloumns
221     #  N1   1
222     1   1  -2 
224     1           # We want to set manually the parameter names
225    N1           # parameter names
226    
227 ### ----------------------------------------------------------------------------
229 ### Statements -----------------------------------------------------------------
230    1                 # number of statements
231    # first statement
232    1
233    6    6
234    # Eq/In  I       J       K       N1      Constants
235     1       1       0       0       0       -1       # 1 <= I
236     1       0       1       0       0       -1       # 1 <= J
237     1       0       0       1       0       0        # 0 <= K
238     1       0      -1       0       1       0        # J <= N1
239     1      -1       1       0       0       0        # I <= J
240     1      -1       1      -2       0       0        # 2K <= J-I
241     0       0       0
243     1                # Iterators
244     J1  J2  J3       # Iterators name
246 ### ----------------------------------------------------------------------------
248     
249 ### Scattering Functions -------------------------------------------------------
251     1    # Number of scattering functions
252     
253     3 9
254     #   I1  I2  I3  I   J   K   N1  1
255     0   1   0   0   2  -2   1   0   0     # I1 = -2I + 2J - K
256     0   0   1   0  -1   0   0   0   0     # I2 = I
257     0   0   0   1   0  -1   0   0   0     # I3 = J
259     
260     1           # Specify scattering dimension names
261     I1  I2  I3  # Scattering dimension names
263 ### ----------------------------------------------------------------------------
267 ------=_Part_1422_26966204.1114622640387
268 Content-Type: application/octet-stream; name=LUDom_OSP_cloog
269 Content-Transfer-Encoding: 7bit
270 Content-Disposition: attachment; filename="LUDom_OSP_cloog"
272 ###############################################################################
274 # Problem  : LU Decomposition + 
275 # Date     : 2005. 4. 25
276 # Author   : DaeGon Kim
278 ###############################################################################
280 ### Context -------------------------------------------------------------------
281    c # language is c
283    1          # Context
284    1 3            # 1 lines and 3 coloumns
285    #  N1   1
286    1   1  -2      # N > 1
288    1              # 1 - Specify the names of parameters
289    N1             # parameter names
291 ### ----------------------------------------------------------------------------
293 ### Statements -----------------------------------------------------------------
294    2                             # number of statements
295    # first statement
296    1
297    7    6
298    # Eq/In  J       J       K       N1      Constants
299     1       1       0       0       0       -1       # 1 <= I
300     1       0       1       0       0       -1       # 1 <= J
301     1       0       0       1       0       0        # 0 <= K
302     1      -1       0       0       1       0        # I <= N1
303     1       0      -1       0       1       0        # J <= N1
304     1       1       0      -1       0       0        # K <= I
305     1       0       1      -1       0       0        # K <= J
306     0       0       0
307    
308    # second statement
309    1
310    6    6
311    # Eq/In  I       J       K       N1      Constants
312     1       1       0       0       0       -1       # 1 <= I
313     1       0       1       0       0       -1       # 1 <= J
314     1       0       0       1       0       0        # 0 <= K
315     1       0      -1       0       1       0        # J <= N1
316     1      -1       1       0       0       0        # I <= J
317     1      -1       1      -2       0       0        # 2K <= J-I
318     0       0       0
320     1                # Iterators
321     J1  J2  J3       # Iterators name
323 ### ----------------------------------------------------------------------------
325     
326 ### Scattering Functions -------------------------------------------------------
328     2    # Number of scattering functions
330     # First statement
331     3 9 
332     #   I1  I2  I3  I   J   K   N1  1
333     0   1   0   0  -1  -1  -1   0   0    # I1 = I+J+K
334     0   0   1   0  -1   0   0   0   0    # I2 = I
335     0   0   0   1   0  -1   0   0   0    # I3 = J
337     # Second statement
338     3 9
339     #   I1  I2  I3  I   J   K   N1  1
340     0   1   0   0   2  -2   1   0   0     # I1 = -2I + 2J - K
341     0   0   1   0  -1   0   0   0   0     # I2 = I
342     0   0   0   1   0  -1   0   0   0     # I3 = J
345     1          # Specify scattering dimension names
346     I1  I2  I3 # Scattering dimension names
348 ### ----------------------------------------------------------------------------
353 ------=_Part_1422_26966204.1114622640387
354 Content-Type: application/octet-stream; name=LUDom.type1.c
355 Content-Transfer-Encoding: 7bit
356 Content-Disposition: attachment; filename="LUDom.type1.c"
358 /* Author : DaeGon Kim 
359    Date   : Tue Apr 26 20:03:32 MDT 2005 */
361 #include <stdio.h>
362 #include <stdlib.h>
364 #define max(x,y) ((x)>(y) ? (x) : (y))
365 #define min(x,y) ((x)>(y) ? (y) : (x))
366 #define ceild(x,y) ((x)+1) / (y) 
367 #define floord(x,y) (x) / (y) 
369 int main(int argc, char **argv) {
371     /* parameters declaration */
372     int N1 = 0;
374     /* statements declaration */
375     int S1 = 0;
377     /* iterators declaration */
378     int I1 = 0;
379     int J1 = 0;
380     int I2 = 0;
381     int J2 = 0;
382     int I3 = 0;
383     int J3 = 0;
385     /* check arguements and get values of parameters */
386     if ( argc != 1 + 1) {
387         printf("The number of arguements for %s is 1\n", argv[0]);
388         exit(0);
389     }
391     N1 = atoi(argv[1]);
393 /* Generated from ./INPUT/CLOOG/LUDom_cloog by CLooG v0.12.2 64 bits in 0.00s. */
394 for (I1=2;I1<=3*N1;I1++) {
395   for (I2=max(ceild(I1-N1,2),1);I2<=min(N1,I1-1);I2++) {
396     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=min(N1,I1-I2);I3++) {
397       J3 = I1-(I2)-(I3) ;
398       S1++;
399     }
400   }
404     /* statements print */
405     fprintf(stderr, "S1 : %d\n", S1);
412 ------=_Part_1422_26966204.1114622640387
413 Content-Type: application/octet-stream; name=LUDom.type2.c
414 Content-Transfer-Encoding: 7bit
415 Content-Disposition: attachment; filename="LUDom.type2.c"
417 /* Author : DaeGon Kim 
418    Date   : Tue Apr 26 20:03:33 MDT 2005 */
420 #include <stdio.h>
421 #include <stdlib.h>
423 #define max(x,y) ((x)>(y) ? (x) : (y))
424 #define min(x,y) ((x)>(y) ? (y) : (x))
425 #define ceild(x,y) ((x)+1) / (y) 
426 #define floord(x,y) (x) / (y) 
428 int main(int argc, char **argv) {
430     /* parameters declaration */
431     int N1 = 0;
433     /* statements declaration */
434     int S1 = 0;
436     /* iterators declaration */
437     int I1 = 0;
438     int J1 = 0;
439     int I2 = 0;
440     int J2 = 0;
441     int I3 = 0;
442     int J3 = 0;
444     /* check arguements and get values of parameters */
445     if ( argc != 1 + 1) {
446         printf("The number of arguements for %s is 1\n", argv[0]);
447         exit(0);
448     }
450     N1 = atoi(argv[1]);
452 /* Generated from ./INPUT/CLOOG/LUDom_cloog by CLooG v0.12.2 64 bits in 0.00s. */
453 for (I1=2;I1<=3*N1;I1++) {
454   for (I2=max(ceild(I1-N1,2),1);I2<=min(N1,I1-1);I2++) {
455     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=min(N1,I1-I2);I3++) {
456       J3 = I1-(I2)-(I3) ;
457       S1++;
458     }
459   }
462     /* statements print */
463     fprintf(stderr, "S1 : %d\n", S1);
470 ------=_Part_1422_26966204.1114622640387
471 Content-Type: application/octet-stream; name=OSP.type1.c
472 Content-Transfer-Encoding: 7bit
473 Content-Disposition: attachment; filename="OSP.type1.c"
475 /* Author : DaeGon Kim 
476    Date   : Tue Apr 26 20:04:18 MDT 2005 */
478 #include <stdio.h>
479 #include <stdlib.h>
481 #define max(x,y) ((x)>(y) ? (x) : (y))
482 #define min(x,y) ((x)>(y) ? (y) : (x))
483 #define ceild(x,y) ((x)+1) / (y) 
484 #define floord(x,y) (x) / (y) 
486 int main(int argc, char **argv) {
488     /* parameters declaration */
489     int N1 = 0;
491     /* statements declaration */
492     int S1 = 0;
494     /* iterators declaration */
495     int I1 = 0;
496     int J1 = 0;
497     int I2 = 0;
498     int J2 = 0;
499     int I3 = 0;
500     int J3 = 0;
502     /* check arguements and get values of parameters */
503     if ( argc != 1 + 1) {
504         printf("The number of arguements for %s is 1\n", argv[0]);
505         exit(0);
506     }
508     N1 = atoi(argv[1]);
510 /* Generated from ./INPUT/CLOOG/OSP_cloog by CLooG v0.12.2 64 bits in 0.00s. */
511 for (I1=0;I1<=2*N1-2;I1++) {
512   for (I2=1;I2<=floord(-I1+2*N1,2);I2++) {
513     for (I3=ceild(I1+2*I2,2);I3<=min(floord(2*I1+3*I2,3),N1);I3++) {
514       J3 = -I1-2*(I2)+2*I3 ;
515       S1++;
516     }
517   }
521     /* statements print */
522     fprintf(stderr, "S1 : %d\n", S1);
528 ------=_Part_1422_26966204.1114622640387
529 Content-Type: application/octet-stream; name=OSP.type2.c
530 Content-Transfer-Encoding: 7bit
531 Content-Disposition: attachment; filename="OSP.type2.c"
533 /* Author : DaeGon Kim 
534    Date   : Tue Apr 26 20:04:19 MDT 2005 */
536 #include <stdio.h>
537 #include <stdlib.h>
539 #define max(x,y) ((x)>(y) ? (x) : (y))
540 #define min(x,y) ((x)>(y) ? (y) : (x))
541 #define ceild(x,y) ((x)+1) / (y) 
542 #define floord(x,y) (x) / (y) 
544 int main(int argc, char **argv) {
546     /* parameters declaration */
547     int N1 = 0;
549     /* statements declaration */
550     int S1 = 0;
552     /* iterators declaration */
553     int I1 = 0;
554     int J1 = 0;
555     int I2 = 0;
556     int J2 = 0;
557     int I3 = 0;
558     int J3 = 0;
560     /* check arguements and get values of parameters */
561     if ( argc != 1 + 1) {
562         printf("The number of arguements for %s is 1\n", argv[0]);
563         exit(0);
564     }
566     N1 = atoi(argv[1]);
568 /* Generated from ./INPUT/CLOOG/OSP_cloog by CLooG v0.12.2 64 bits in 0.00s. */
569 for (I1=0;I1<=2*N1-2;I1++) {
570   for (I2=1;I2<=floord(-I1+2*N1,2);I2++) {
571     for (I3=ceild(I1+2*I2,2);I3<=min(floord(2*I1+3*I2,3),N1);I3++) {
572       J3 = -I1-2*(I2)+2*I3 ;
573       S1++;
574     }
575   }
579     /* statements print */
580     fprintf(stderr, "S1 : %d\n", S1);
587 ------=_Part_1422_26966204.1114622640387
588 Content-Type: application/octet-stream; name=LUDom_OSP.type1.c
589 Content-Transfer-Encoding: 7bit
590 Content-Disposition: attachment; filename="LUDom_OSP.type1.c"
592 /* Author : DaeGon Kim 
593    Date   : Tue Apr 26 20:28:05 MDT 2005 */
595 #include <stdio.h>
596 #include <stdlib.h>
598 #define max(x,y) ((x)>(y) ? (x) : (y))
599 #define min(x,y) ((x)>(y) ? (y) : (x))
600 #define ceild(x,y) ((x)+1) / (y) 
601 #define floord(x,y) (x) / (y) 
603 int main(int argc, char **argv) {
605     /* parameters declaration */
606     int N1 = 0;
608     /* statements declaration */
609     int S1 = 0;
610     int S2 = 0;
612     /* iterators declaration */
613     int I1 = 0;
614     int J1 = 0;
615     int I2 = 0;
616     int J2 = 0;
617     int I3 = 0;
618     int J3 = 0;
620     /* check arguements and get values of parameters */
621     if ( argc != 1 + 1) {
622         printf("The number of arguements for %s is 1\n", argv[0]);
623         exit(0);
624     }
626     N1 = atoi(argv[1]);
628 /* Generated from ./INPUT/CLOOG/LUDom_OSP_cloog by CLooG v0.12.2 64 bits in 0.76s. */
629 for (I1=0;I1<=1;I1++) {
630   for (I2=1;I2<=floord(-I1+2*N1,2);I2++) {
631     for (I3=ceild(I1+2*I2,2);I3<=min(floord(2*I1+3*I2,3),N1);I3++) {
632       J3 = -I1-2*(I2)+2*I3 ;
633       S2++;
634     }
635   }
637 for (I1=2;I1<=min(3,floord(2*N1,3));I1++) {
638   for (I2=max(ceild(I1+1,4),1);I2<=I1-1;I2++) {
639     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
640       J3 = I1-(I2)-(I3) ;
641       S1++;
642     }
643     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
644       J3 = -I1-2*(I2)+2*I3 ;
645       S2++;
646     }
647   }
648   for (I2=I1;I2<=floord(-I1+2*N1,2);I2++) {
649     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
650       J3 = -I1-2*(I2)+2*I3 ;
651       S2++;
652     }
653   }
655 if (N1 >= 6) {
656   J3 = 4-(I2)-(I3) ;
657   S1++;
658   J1 = -2*(4)+3*3 ;
659   if ((2*4+J1)%3 == 0) {
660     J2 = (2*4+J1)/3 ;
661     J3 = 3*4-4*J2 ;
662     S1++;
663     S2++;
664   }
665   for (I2=2;I2<=3;I2++) {
666     for (I3=max(max(1,ceild(4-I2,2)),4-2*I2);I3<=4-I2;I3++) {
667       J3 = 4-(I2)-(I3) ;
668       S1++;
669     }
670     for (I3=max(4-I2+1,ceild(4+2*I2,2));I3<=min(N1,floord(2*4+3*I2,3));I3++) {
671       J3 = -(4)-2*(I2)+2*I3 ;
672       S2++;
673     }
674   }
675   for (I2=4;I2<=N1-2;I2++) {
676     for (I3=ceild(4+2*I2,2);I3<=min(N1,floord(2*4+3*I2,3));I3++) {
677       J3 = -(4)-2*(I2)+2*I3 ;
678       S2++;
679     }
680   }
682 if ((N1 <= 5) && (N1 >= 5)) {
683   J3 = 4-(I2)-(I3) ;
684   S1++;
685   J1 = -2*(4)+3*3 ;
686   if ((2*4+J1)%3 == 0) {
687     J2 = (2*4+J1)/3 ;
688     J3 = 3*4-4*J2 ;
689     S1++;
690     S2++;
691   }
692   for (I2=2;I2<=3;I2++) {
693     for (I3=max(max(1,ceild(4-I2,2)),4-2*I2);I3<=4-I2;I3++) {
694       J3 = 4-(I2)-(I3) ;
695       S1++;
696     }
697     for (I3=max(4-I2+1,ceild(4+2*I2,2));I3<=min(N1,floord(2*4+3*I2,3));I3++) {
698       J3 = -(4)-2*(I2)+2*I3 ;
699       S2++;
700     }
701   }
703 for (I1=max(2,ceild(2*N1+1,3));I1<=min(3,floord(2*N1+2,3));I1++) {
704   for (I2=max(ceild(I1+1,4),1);I2<=I1-1;I2++) {
705     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
706       J3 = I1-(I2)-(I3) ;
707       S1++;
708     }
709     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
710       J3 = -I1-2*(I2)+2*I3 ;
711       S2++;
712     }
713   }
715 if (N1 >= 8) {
716   for (I3=2*1+1;I3<=3*1;I3++) {
717     J3 = 5-(I2)-(I3) ;
718     S1++;
719   }
720   if ((9*5-1)%12 == 0) {
721     I3 = (9*5-1)/12 ;
722     J1 = -2*(5)+3*I3 ;
723     if ((2*5+J1)%3 == 0) {
724       J2 = (2*5+J1)/3 ;
725       J3 = 3*5-4*J2 ;
726       S1++;
727       S2++;
728     }
729   }
730   if ((3*5+1)%4 == 0) {
731     I3 = (3*5+1)/4 ;
732     J3 = 5-(I2)-(I3) ;
733     S1++;
734     J3 = -(5)-2*(I2)+2*I3 ;
735     S2++;
736   }
737   for (I2=2;I2<=4;I2++) {
738     for (I3=max(max(1,ceild(5-I2,2)),5-2*I2);I3<=5-I2;I3++) {
739       J3 = 5-(I2)-(I3) ;
740       S1++;
741     }
742     for (I3=max(5-I2+1,ceild(5+2*I2,2));I3<=min(N1,floord(2*5+3*I2,3));I3++) {
743       J3 = -(5)-2*(I2)+2*I3 ;
744       S2++;
745     }
746   }
747   for (I2=5;I2<=floord(2*N1-5,2);I2++) {
748     for (I3=ceild(5+2*I2,2);I3<=min(N1,floord(2*5+3*I2,3));I3++) {
749       J3 = -(5)-2*(I2)+2*I3 ;
750       S2++;
751     }
752   }
754 if ((N1 <= 7) && (N1 >= 7)) {
755   for (I3=2*1+1;I3<=3*1;I3++) {
756     J3 = 5-(I2)-(I3) ;
757     S1++;
758   }
759   if ((9*5-1)%12 == 0) {
760     I3 = (9*5-1)/12 ;
761     J1 = -2*(5)+3*I3 ;
762     if ((2*5+J1)%3 == 0) {
763       J2 = (2*5+J1)/3 ;
764       J3 = 3*5-4*J2 ;
765       S1++;
766       S2++;
767     }
768   }
769   if ((3*5+1)%4 == 0) {
770     I3 = (3*5+1)/4 ;
771     J3 = 5-(I2)-(I3) ;
772     S1++;
773     J3 = -(5)-2*(I2)+2*I3 ;
774     S2++;
775   }
776   for (I2=2;I2<=4;I2++) {
777     for (I3=max(max(1,ceild(5-I2,2)),5-2*I2);I3<=5-I2;I3++) {
778       J3 = 5-(I2)-(I3) ;
779       S1++;
780     }
781     for (I3=max(5-I2+1,ceild(5+2*I2,2));I3<=min(N1,floord(2*5+3*I2,3));I3++) {
782       J3 = -(5)-2*(I2)+2*I3 ;
783       S2++;
784     }
785   }
787 for (I1=ceild(2*N1+3,3);I1<=min(floord(4*N1-2,3),3);I1++) {
788   for (I2=max(ceild(I1+1,4),I1-N1+1);I2<=floord(-I1+2*N1,2);I2++) {
789     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
790       J3 = I1-(I2)-(I3) ;
791       S1++;
792     }
793     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
794       J3 = -I1-2*(I2)+2*I3 ;
795       S2++;
796     }
797   }
798   for (I2=ceild(-I1+2*N1+1,2);I2<=I1-1;I2++) {
799     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
800       J3 = I1-(I2)-(I3) ;
801       S1++;
802     }
803   }
805 if ((N1 <= 4) && (N1 >= 4)) {
806   J3 = 4-(I2)-(I3) ;
807   S1++;
808   J1 = -2*(4)+3*3 ;
809   if ((2*4+J1)%3 == 0) {
810     J2 = (2*4+J1)/3 ;
811     J3 = 3*4-4*J2 ;
812     S1++;
813     S2++;
814   }
815   for (I2=max(2,-N1+5);I2<=N1-2;I2++) {
816     for (I3=max(max(1,ceild(4-I2,2)),4-2*I2);I3<=4-I2;I3++) {
817       J3 = 4-(I2)-(I3) ;
818       S1++;
819     }
820     for (I3=max(4-I2+1,ceild(4+2*I2,2));I3<=min(N1,floord(2*4+3*I2,3));I3++) {
821       J3 = -(4)-2*(I2)+2*I3 ;
822       S2++;
823     }
824   }
825   for (I2=ceild(2*N1-3,2);I2<=3;I2++) {
826     for (I3=max(max(ceild(4-I2,2),4-2*I2),1);I3<=min(4-I2,N1);I3++) {
827       J3 = 4-(I2)-(I3) ;
828       S1++;
829     }
830   }
832 if (N1 >= 9) {
833   for (I3=4*1;I3<=floord(13*1-1,3);I3++) {
834     J3 = -(6)-2*(I2)+2*I3 ;
835     S2++;
836     J3 = 6-(I2)-(I3) ;
837     S1++;
838   }
839   if (13*6%18 == 0) {
840     I3 = 13*6/18 ;
841     J1 = -2*(6)+3*I3 ;
842     if ((2*6+J1)%3 == 0) {
843       J2 = (2*6+J1)/3 ;
844       J3 = 3*6-4*J2 ;
845       S1++;
846       S2++;
847     }
848   }
849   for (I3=ceild(13*1+1,3);I3<=min(N1,5*1);I3++) {
850     J3 = 6-(I2)-(I3) ;
851     S1++;
852     J3 = -(6)-2*(I2)+2*I3 ;
853     S2++;
854   }
855   if (5%4 == 0) {
856     for (I3=2*5/4+1;I3<=3*5/4;I3++) {
857       J3 = 6-(I2)-(I3) ;
858       S1++;
859     }
860     if ((9*6-1)%12 == 0) {
861       I3 = (9*6-1)/12 ;
862       J1 = -2*(6)+3*I3 ;
863       if ((2*6+J1)%3 == 0) {
864         J2 = (2*6+J1)/3 ;
865         J3 = 3*6-4*J2 ;
866         S1++;
867         S2++;
868       }
869     }
870     if ((3*6+1)%4 == 0) {
871       I3 = (3*6+1)/4 ;
872       J3 = 6-(I2)-(I3) ;
873       S1++;
874       J3 = -(6)-2*(I2)+2*I3 ;
875       S2++;
876     }
877   }
878   if (3%2 == 0) {
879     for (I3=2*3/2;I3<=floord(6*3/2-1,2);I3++) {
880       J3 = 6-(I2)-(I3) ;
881       S1++;
882     }
883     if (3*6%4 == 0) {
884       I3 = 3*6/4 ;
885       J1 = -2*(6)+3*I3 ;
886       if ((2*6+J1)%3 == 0) {
887         J2 = (2*6+J1)/3 ;
888         J3 = 3*6-4*J2 ;
889         S1++;
890         S2++;
891       }
892     }
893     for (I3=3*3/2+1;I3<=min(N1,floord(11*3/2,3));I3++) {
894       J3 = -(6)-2*(I2)+2*I3 ;
895       S2++;
896     }
897   }
898   for (I2=2;I2<=5;I2++) {
899     for (I3=max(max(1,ceild(6-I2,2)),6-2*I2);I3<=6-I2;I3++) {
900       J3 = 6-(I2)-(I3) ;
901       S1++;
902     }
903     for (I3=max(6-I2+1,ceild(6+2*I2,2));I3<=min(N1,floord(2*6+3*I2,3));I3++) {
904       J3 = -(6)-2*(I2)+2*I3 ;
905       S2++;
906     }
907   }
908   for (I2=6;I2<=N1-3;I2++) {
909     for (I3=ceild(6+2*I2,2);I3<=min(N1,floord(2*6+3*I2,3));I3++) {
910       J3 = -(6)-2*(I2)+2*I3 ;
911       S2++;
912     }
913   }
915 if ((N1 <= 8) && (N1 >= 8)) {
916   for (I3=4*1;I3<=floord(13*1-1,3);I3++) {
917     J3 = -(6)-2*(I2)+2*I3 ;
918     S2++;
919     J3 = 6-(I2)-(I3) ;
920     S1++;
921   }
922   if (13*6%18 == 0) {
923     I3 = 13*6/18 ;
924     J1 = -2*(6)+3*I3 ;
925     if ((2*6+J1)%3 == 0) {
926       J2 = (2*6+J1)/3 ;
927       J3 = 3*6-4*J2 ;
928       S1++;
929       S2++;
930     }
931   }
932   for (I3=ceild(13*1+1,3);I3<=min(N1,5*1);I3++) {
933     J3 = 6-(I2)-(I3) ;
934     S1++;
935     J3 = -(6)-2*(I2)+2*I3 ;
936     S2++;
937   }
938   if (5%4 == 0) {
939     for (I3=2*5/4+1;I3<=3*5/4;I3++) {
940       J3 = 6-(I2)-(I3) ;
941       S1++;
942     }
943     if ((9*6-1)%12 == 0) {
944       I3 = (9*6-1)/12 ;
945       J1 = -2*(6)+3*I3 ;
946       if ((2*6+J1)%3 == 0) {
947         J2 = (2*6+J1)/3 ;
948         J3 = 3*6-4*J2 ;
949         S1++;
950         S2++;
951       }
952     }
953     if ((3*6+1)%4 == 0) {
954       I3 = (3*6+1)/4 ;
955       J3 = 6-(I2)-(I3) ;
956       S1++;
957       J3 = -(6)-2*(I2)+2*I3 ;
958       S2++;
959     }
960   }
961   if (3%2 == 0) {
962     for (I3=2*3/2;I3<=floord(6*3/2-1,2);I3++) {
963       J3 = 6-(I2)-(I3) ;
964       S1++;
965     }
966     if (3*6%4 == 0) {
967       I3 = 3*6/4 ;
968       J1 = -2*(6)+3*I3 ;
969       if ((2*6+J1)%3 == 0) {
970         J2 = (2*6+J1)/3 ;
971         J3 = 3*6-4*J2 ;
972         S1++;
973         S2++;
974       }
975     }
976     for (I3=3*3/2+1;I3<=min(N1,floord(11*3/2,3));I3++) {
977       J3 = -(6)-2*(I2)+2*I3 ;
978       S2++;
979     }
980   }
981   for (I2=2;I2<=5;I2++) {
982     for (I3=max(max(1,ceild(6-I2,2)),6-2*I2);I3<=6-I2;I3++) {
983       J3 = 6-(I2)-(I3) ;
984       S1++;
985     }
986     for (I3=max(6-I2+1,ceild(6+2*I2,2));I3<=min(N1,floord(2*6+3*I2,3));I3++) {
987       J3 = -(6)-2*(I2)+2*I3 ;
988       S2++;
989     }
990   }
992 if ((N1 <= 3) && (N1 >= 3)) {
993   if ((4*N1-1)%3 == 0) {
994     I1 = (4*N1-1)/3 ;
995     for (I2=ceild(N1+2,3);I2<=floord(4*N1-4,3);I2++) {
996       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
997         J3 = I1-(I2)-(I3) ;
998         S1++;
999       }
1000     }
1001   }
1003 if (N1 >= 11) {
1004   J1 = -2*(7)+3*5 ;
1005   if ((2*7+J1)%3 == 0) {
1006     J2 = (2*7+J1)/3 ;
1007     J3 = 3*7-4*J2 ;
1008     S1++;
1009     S2++;
1010   }
1011   for (I3=6;I3<=5;I3++) {
1012     J3 = 7-(I2)-(I3) ;
1013     S1++;
1014     J3 = -(7)-2*(I2)+2*I3 ;
1015     S2++;
1016   }
1017   J3 = 7-(I2)-(I3) ;
1018   S1++;
1019   if (7%6 == 0) {
1020     for (I3=4*7/6;I3<=floord(13*7/6-1,3);I3++) {
1021       J3 = -(7)-2*(I2)+2*I3 ;
1022       S2++;
1023       J3 = 7-(I2)-(I3) ;
1024       S1++;
1025     }
1026     if (13*7%18 == 0) {
1027       I3 = 13*7/18 ;
1028       J1 = -2*(7)+3*I3 ;
1029       if ((2*7+J1)%3 == 0) {
1030         J2 = (2*7+J1)/3 ;
1031         J3 = 3*7-4*J2 ;
1032         S1++;
1033         S2++;
1034       }
1035     }
1036     for (I3=ceild(13*7/6+1,3);I3<=min(N1,5*7/6);I3++) {
1037       J3 = 7-(I2)-(I3) ;
1038       S1++;
1039       J3 = -(7)-2*(I2)+2*I3 ;
1040       S2++;
1041     }
1042   }
1043   if (3%2 == 0) {
1044     for (I3=2*3/2+1;I3<=3*3/2;I3++) {
1045       J3 = 7-(I2)-(I3) ;
1046       S1++;
1047     }
1048     if ((9*7-1)%12 == 0) {
1049       I3 = (9*7-1)/12 ;
1050       J1 = -2*(7)+3*I3 ;
1051       if ((2*7+J1)%3 == 0) {
1052         J2 = (2*7+J1)/3 ;
1053         J3 = 3*7-4*J2 ;
1054         S1++;
1055         S2++;
1056       }
1057     }
1058     if ((3*7+1)%4 == 0) {
1059       I3 = (3*7+1)/4 ;
1060       J3 = 7-(I2)-(I3) ;
1061       S1++;
1062       J3 = -(7)-2*(I2)+2*I3 ;
1063       S2++;
1064     }
1065   }
1066   if (7%4 == 0) {
1067     for (I3=2*7/4;I3<=floord(6*7/4-1,2);I3++) {
1068       J3 = 7-(I2)-(I3) ;
1069       S1++;
1070     }
1071     if (3*7%4 == 0) {
1072       I3 = 3*7/4 ;
1073       J1 = -2*(7)+3*I3 ;
1074       if ((2*7+J1)%3 == 0) {
1075         J2 = (2*7+J1)/3 ;
1076         J3 = 3*7-4*J2 ;
1077         S1++;
1078         S2++;
1079       }
1080     }
1081     for (I3=3*7/4+1;I3<=min(N1,floord(11*7/4,3));I3++) {
1082       J3 = -(7)-2*(I2)+2*I3 ;
1083       S2++;
1084     }
1085   }
1086   for (I2=2;I2<=6;I2++) {
1087     for (I3=max(max(1,ceild(7-I2,2)),7-2*I2);I3<=7-I2;I3++) {
1088       J3 = 7-(I2)-(I3) ;
1089       S1++;
1090     }
1091     for (I3=max(7-I2+1,ceild(7+2*I2,2));I3<=min(N1,floord(2*7+3*I2,3));I3++) {
1092       J3 = -(7)-2*(I2)+2*I3 ;
1093       S2++;
1094     }
1095   }
1096   for (I2=7;I2<=floord(2*N1-7,2);I2++) {
1097     for (I3=ceild(7+2*I2,2);I3<=min(N1,floord(2*7+3*I2,3));I3++) {
1098       J3 = -(7)-2*(I2)+2*I3 ;
1099       S2++;
1100     }
1101   }
1103 if ((N1 <= 10) && (N1 >= 10)) {
1104   J1 = -2*(7)+3*5 ;
1105   if ((2*7+J1)%3 == 0) {
1106     J2 = (2*7+J1)/3 ;
1107     J3 = 3*7-4*J2 ;
1108     S1++;
1109     S2++;
1110   }
1111   for (I3=6;I3<=5;I3++) {
1112     J3 = 7-(I2)-(I3) ;
1113     S1++;
1114     J3 = -(7)-2*(I2)+2*I3 ;
1115     S2++;
1116   }
1117   J3 = 7-(I2)-(I3) ;
1118   S1++;
1119   if (7%6 == 0) {
1120     for (I3=4*7/6;I3<=floord(13*7/6-1,3);I3++) {
1121       J3 = -(7)-2*(I2)+2*I3 ;
1122       S2++;
1123       J3 = 7-(I2)-(I3) ;
1124       S1++;
1125     }
1126     if (13*7%18 == 0) {
1127       I3 = 13*7/18 ;
1128       J1 = -2*(7)+3*I3 ;
1129       if ((2*7+J1)%3 == 0) {
1130         J2 = (2*7+J1)/3 ;
1131         J3 = 3*7-4*J2 ;
1132         S1++;
1133         S2++;
1134       }
1135     }
1136     for (I3=ceild(13*7/6+1,3);I3<=min(N1,5*7/6);I3++) {
1137       J3 = 7-(I2)-(I3) ;
1138       S1++;
1139       J3 = -(7)-2*(I2)+2*I3 ;
1140       S2++;
1141     }
1142   }
1143   if (3%2 == 0) {
1144     for (I3=2*3/2+1;I3<=3*3/2;I3++) {
1145       J3 = 7-(I2)-(I3) ;
1146       S1++;
1147     }
1148     if ((9*7-1)%12 == 0) {
1149       I3 = (9*7-1)/12 ;
1150       J1 = -2*(7)+3*I3 ;
1151       if ((2*7+J1)%3 == 0) {
1152         J2 = (2*7+J1)/3 ;
1153         J3 = 3*7-4*J2 ;
1154         S1++;
1155         S2++;
1156       }
1157     }
1158     if ((3*7+1)%4 == 0) {
1159       I3 = (3*7+1)/4 ;
1160       J3 = 7-(I2)-(I3) ;
1161       S1++;
1162       J3 = -(7)-2*(I2)+2*I3 ;
1163       S2++;
1164     }
1165   }
1166   if (7%4 == 0) {
1167     for (I3=2*7/4;I3<=floord(6*7/4-1,2);I3++) {
1168       J3 = 7-(I2)-(I3) ;
1169       S1++;
1170     }
1171     if (3*7%4 == 0) {
1172       I3 = 3*7/4 ;
1173       J1 = -2*(7)+3*I3 ;
1174       if ((2*7+J1)%3 == 0) {
1175         J2 = (2*7+J1)/3 ;
1176         J3 = 3*7-4*J2 ;
1177         S1++;
1178         S2++;
1179       }
1180     }
1181     for (I3=3*7/4+1;I3<=min(N1,floord(11*7/4,3));I3++) {
1182       J3 = -(7)-2*(I2)+2*I3 ;
1183       S2++;
1184     }
1185   }
1186   for (I2=2;I2<=6;I2++) {
1187     for (I3=max(max(1,ceild(7-I2,2)),7-2*I2);I3<=7-I2;I3++) {
1188       J3 = 7-(I2)-(I3) ;
1189       S1++;
1190     }
1191     for (I3=max(7-I2+1,ceild(7+2*I2,2));I3<=min(N1,floord(2*7+3*I2,3));I3++) {
1192       J3 = -(7)-2*(I2)+2*I3 ;
1193       S2++;
1194     }
1195   }
1197 if ((N1 <= 6) && (N1 >= 5)) {
1198   for (I3=2*1+1;I3<=3*1;I3++) {
1199     J3 = 5-(I2)-(I3) ;
1200     S1++;
1201   }
1202   if ((9*5-1)%12 == 0) {
1203     I3 = (9*5-1)/12 ;
1204     J1 = -2*(5)+3*I3 ;
1205     if ((2*5+J1)%3 == 0) {
1206       J2 = (2*5+J1)/3 ;
1207       J3 = 3*5-4*J2 ;
1208       S1++;
1209       S2++;
1210     }
1211   }
1212   if ((3*5+1)%4 == 0) {
1213     I3 = (3*5+1)/4 ;
1214     J3 = 5-(I2)-(I3) ;
1215     S1++;
1216     J3 = -(5)-2*(I2)+2*I3 ;
1217     S2++;
1218   }
1219   for (I2=max(2,-N1+6);I2<=floord(2*N1-5,2);I2++) {
1220     for (I3=max(max(1,ceild(5-I2,2)),5-2*I2);I3<=5-I2;I3++) {
1221       J3 = 5-(I2)-(I3) ;
1222       S1++;
1223     }
1224     for (I3=max(5-I2+1,ceild(5+2*I2,2));I3<=min(N1,floord(2*5+3*I2,3));I3++) {
1225       J3 = -(5)-2*(I2)+2*I3 ;
1226       S2++;
1227     }
1228   }
1229   for (I2=N1-2;I2<=4;I2++) {
1230     for (I3=max(max(ceild(5-I2,2),5-2*I2),1);I3<=min(5-I2,N1);I3++) {
1231       J3 = 5-(I2)-(I3) ;
1232       S1++;
1233     }
1234   }
1236 if (N1 == 4) {
1237   for (I3=ceild(2*N1+1,3);I3<=N1-1;I3++) {
1238     J3 = 5-(I2)-(I3) ;
1239     S1++;
1240   }
1241   if (-1%3 == 0) {
1242     I3 = (3*N1-1)/3 ;
1243     J1 = -2*(5)+3*I3 ;
1244     if ((2*5+J1)%3 == 0) {
1245       J2 = (2*5+J1)/3 ;
1246       J3 = 3*5-4*J2 ;
1247       S1++;
1248       S2++;
1249     }
1250   }
1251   J3 = 5-(I2)-(I3) ;
1252   S1++;
1253   J3 = -(5)-2*(I2)+2*I3 ;
1254   S2++;
1255   for (I2=2;I2<=4;I2++) {
1256     for (I3=max(max(ceild(5-I2,2),5-2*I2),1);I3<=min(5-I2,N1);I3++) {
1257       J3 = 5-(I2)-(I3) ;
1258       S1++;
1259     }
1260   }
1262 if (N1 >= 12) {
1263   for (I3=ceild(8+2*1,2);I3<=8-2*(1)-1;I3++) {
1264     J3 = -(8)-2*(I2)+2*I3 ;
1265     S2++;
1266   }
1267   for (I3=8-2*(1);I3<=floord(2*8+3*1,3);I3++) {
1268     J3 = 8-(I2)-(I3) ;
1269     S1++;
1270     J3 = -(8)-2*(I2)+2*I3 ;
1271     S2++;
1272   }
1273   for (I3=ceild(2*8+3*1+1,3);I3<=min(N1,8-(1));I3++) {
1274     J3 = 8-(I2)-(I3) ;
1275     S1++;
1276   }
1277   if (4%3 == 0) {
1278     for (I3=4*4/3;I3<=floord(13*4/3-1,3);I3++) {
1279       J3 = -(8)-2*(I2)+2*I3 ;
1280       S2++;
1281       J3 = 8-(I2)-(I3) ;
1282       S1++;
1283     }
1284     if (13*8%18 == 0) {
1285       I3 = 13*8/18 ;
1286       J1 = -2*(8)+3*I3 ;
1287       if ((2*8+J1)%3 == 0) {
1288         J2 = (2*8+J1)/3 ;
1289         J3 = 3*8-4*J2 ;
1290         S1++;
1291         S2++;
1292       }
1293     }
1294     for (I3=ceild(13*4/3+1,3);I3<=min(N1,5*4/3);I3++) {
1295       J3 = 8-(I2)-(I3) ;
1296       S1++;
1297       J3 = -(8)-2*(I2)+2*I3 ;
1298       S2++;
1299     }
1300   }
1301   if (3%2 == 0) {
1302     for (I3=8-2*(3/2);I3<=floord(8+2*3/2-1,2);I3++) {
1303       J3 = 8-(I2)-(I3) ;
1304       S1++;
1305     }
1306     for (I3=ceild(8+2*3/2,2);I3<=floord(2*8+3/2-1,3);I3++) {
1307       J3 = -(8)-2*(I2)+2*I3 ;
1308       S2++;
1309       J3 = 8-(I2)-(I3) ;
1310       S1++;
1311     }
1312     if ((2*8+3/2)%3 == 0) {
1313       I3 = (2*8+3/2)/3 ;
1314       J1 = -2*(8)+3*I3 ;
1315       if ((2*8+J1)%3 == 0) {
1316         J2 = (2*8+J1)/3 ;
1317         J3 = 3*8-4*J2 ;
1318         S1++;
1319         S2++;
1320       }
1321     }
1322     for (I3=ceild(2*8+3/2+1,3);I3<=8-(3/2);I3++) {
1323       J3 = 8-(I2)-(I3) ;
1324       S1++;
1325       J3 = -(8)-2*(I2)+2*I3 ;
1326       S2++;
1327     }
1328   }
1329   for (I3=2*2;I3<=floord(6*2-1,2);I3++) {
1330     J3 = 8-(I2)-(I3) ;
1331     S1++;
1332   }
1333   if (3*8%4 == 0) {
1334     I3 = 3*8/4 ;
1335     J1 = -2*(8)+3*I3 ;
1336     if ((2*8+J1)%3 == 0) {
1337       J2 = (2*8+J1)/3 ;
1338       J3 = 3*8-4*J2 ;
1339       S1++;
1340       S2++;
1341     }
1342   }
1343   for (I3=3*2+1;I3<=min(N1,floord(11*2,3));I3++) {
1344     J3 = -(8)-2*(I2)+2*I3 ;
1345     S2++;
1346   }
1347   for (I2=3;I2<=7;I2++) {
1348     for (I3=max(max(1,ceild(8-I2,2)),8-2*I2);I3<=8-I2;I3++) {
1349       J3 = 8-(I2)-(I3) ;
1350       S1++;
1351     }
1352     for (I3=max(8-I2+1,ceild(8+2*I2,2));I3<=min(N1,floord(2*8+3*I2,3));I3++) {
1353       J3 = -(8)-2*(I2)+2*I3 ;
1354       S2++;
1355     }
1356   }
1357   for (I2=8;I2<=N1-4;I2++) {
1358     for (I3=ceild(8+2*I2,2);I3<=min(N1,floord(2*8+3*I2,3));I3++) {
1359       J3 = -(8)-2*(I2)+2*I3 ;
1360       S2++;
1361     }
1362   }
1364 if ((N1 <= 11) && (N1 >= 11)) {
1365   for (I3=ceild(8+2*1,2);I3<=8-2*(1)-1;I3++) {
1366     J3 = -(8)-2*(I2)+2*I3 ;
1367     S2++;
1368   }
1369   for (I3=8-2*(1);I3<=floord(2*8+3*1,3);I3++) {
1370     J3 = 8-(I2)-(I3) ;
1371     S1++;
1372     J3 = -(8)-2*(I2)+2*I3 ;
1373     S2++;
1374   }
1375   for (I3=ceild(2*8+3*1+1,3);I3<=min(N1,8-(1));I3++) {
1376     J3 = 8-(I2)-(I3) ;
1377     S1++;
1378   }
1379   if (4%3 == 0) {
1380     for (I3=4*4/3;I3<=floord(13*4/3-1,3);I3++) {
1381       J3 = -(8)-2*(I2)+2*I3 ;
1382       S2++;
1383       J3 = 8-(I2)-(I3) ;
1384       S1++;
1385     }
1386     if (13*8%18 == 0) {
1387       I3 = 13*8/18 ;
1388       J1 = -2*(8)+3*I3 ;
1389       if ((2*8+J1)%3 == 0) {
1390         J2 = (2*8+J1)/3 ;
1391         J3 = 3*8-4*J2 ;
1392         S1++;
1393         S2++;
1394       }
1395     }
1396     for (I3=ceild(13*4/3+1,3);I3<=min(N1,5*4/3);I3++) {
1397       J3 = 8-(I2)-(I3) ;
1398       S1++;
1399       J3 = -(8)-2*(I2)+2*I3 ;
1400       S2++;
1401     }
1402   }
1403   if (3%2 == 0) {
1404     for (I3=8-2*(3/2);I3<=floord(8+2*3/2-1,2);I3++) {
1405       J3 = 8-(I2)-(I3) ;
1406       S1++;
1407     }
1408     for (I3=ceild(8+2*3/2,2);I3<=floord(2*8+3/2-1,3);I3++) {
1409       J3 = -(8)-2*(I2)+2*I3 ;
1410       S2++;
1411       J3 = 8-(I2)-(I3) ;
1412       S1++;
1413     }
1414     if ((2*8+3/2)%3 == 0) {
1415       I3 = (2*8+3/2)/3 ;
1416       J1 = -2*(8)+3*I3 ;
1417       if ((2*8+J1)%3 == 0) {
1418         J2 = (2*8+J1)/3 ;
1419         J3 = 3*8-4*J2 ;
1420         S1++;
1421         S2++;
1422       }
1423     }
1424     for (I3=ceild(2*8+3/2+1,3);I3<=8-(3/2);I3++) {
1425       J3 = 8-(I2)-(I3) ;
1426       S1++;
1427       J3 = -(8)-2*(I2)+2*I3 ;
1428       S2++;
1429     }
1430   }
1431   for (I3=2*2;I3<=floord(6*2-1,2);I3++) {
1432     J3 = 8-(I2)-(I3) ;
1433     S1++;
1434   }
1435   if (3*8%4 == 0) {
1436     I3 = 3*8/4 ;
1437     J1 = -2*(8)+3*I3 ;
1438     if ((2*8+J1)%3 == 0) {
1439       J2 = (2*8+J1)/3 ;
1440       J3 = 3*8-4*J2 ;
1441       S1++;
1442       S2++;
1443     }
1444   }
1445   for (I3=3*2+1;I3<=min(N1,floord(11*2,3));I3++) {
1446     J3 = -(8)-2*(I2)+2*I3 ;
1447     S2++;
1448   }
1449   for (I2=3;I2<=7;I2++) {
1450     for (I3=max(max(1,ceild(8-I2,2)),8-2*I2);I3<=8-I2;I3++) {
1451       J3 = 8-(I2)-(I3) ;
1452       S1++;
1453     }
1454     for (I3=max(8-I2+1,ceild(8+2*I2,2));I3<=min(N1,floord(2*8+3*I2,3));I3++) {
1455       J3 = -(8)-2*(I2)+2*I3 ;
1456       S2++;
1457     }
1458   }
1460 if ((N1 <= 7) && (N1 >= 6)) {
1461   for (I3=4*1;I3<=floord(13*1-1,3);I3++) {
1462     J3 = -(6)-2*(I2)+2*I3 ;
1463     S2++;
1464     J3 = 6-(I2)-(I3) ;
1465     S1++;
1466   }
1467   if (13*6%18 == 0) {
1468     I3 = 13*6/18 ;
1469     J1 = -2*(6)+3*I3 ;
1470     if ((2*6+J1)%3 == 0) {
1471       J2 = (2*6+J1)/3 ;
1472       J3 = 3*6-4*J2 ;
1473       S1++;
1474       S2++;
1475     }
1476   }
1477   for (I3=ceild(13*1+1,3);I3<=min(N1,5*1);I3++) {
1478     J3 = 6-(I2)-(I3) ;
1479     S1++;
1480     J3 = -(6)-2*(I2)+2*I3 ;
1481     S2++;
1482   }
1483   if (5%4 == 0) {
1484     for (I3=2*5/4+1;I3<=3*5/4;I3++) {
1485       J3 = 6-(I2)-(I3) ;
1486       S1++;
1487     }
1488     if ((9*6-1)%12 == 0) {
1489       I3 = (9*6-1)/12 ;
1490       J1 = -2*(6)+3*I3 ;
1491       if ((2*6+J1)%3 == 0) {
1492         J2 = (2*6+J1)/3 ;
1493         J3 = 3*6-4*J2 ;
1494         S1++;
1495         S2++;
1496       }
1497     }
1498     if ((3*6+1)%4 == 0) {
1499       I3 = (3*6+1)/4 ;
1500       J3 = 6-(I2)-(I3) ;
1501       S1++;
1502       J3 = -(6)-2*(I2)+2*I3 ;
1503       S2++;
1504     }
1505   }
1506   if (3%2 == 0) {
1507     for (I3=2*3/2;I3<=floord(6*3/2-1,2);I3++) {
1508       J3 = 6-(I2)-(I3) ;
1509       S1++;
1510     }
1511     if (3*6%4 == 0) {
1512       I3 = 3*6/4 ;
1513       J1 = -2*(6)+3*I3 ;
1514       if ((2*6+J1)%3 == 0) {
1515         J2 = (2*6+J1)/3 ;
1516         J3 = 3*6-4*J2 ;
1517         S1++;
1518         S2++;
1519       }
1520     }
1521     for (I3=3*3/2+1;I3<=min(N1,floord(11*3/2,3));I3++) {
1522       J3 = -(6)-2*(I2)+2*I3 ;
1523       S2++;
1524     }
1525   }
1526   for (I2=2;I2<=N1-3;I2++) {
1527     for (I3=max(max(1,ceild(6-I2,2)),6-2*I2);I3<=6-I2;I3++) {
1528       J3 = 6-(I2)-(I3) ;
1529       S1++;
1530     }
1531     for (I3=max(6-I2+1,ceild(6+2*I2,2));I3<=min(N1,floord(2*6+3*I2,3));I3++) {
1532       J3 = -(6)-2*(I2)+2*I3 ;
1533       S2++;
1534     }
1535   }
1536   for (I2=ceild(2*N1-5,2);I2<=5;I2++) {
1537     for (I3=max(max(ceild(6-I2,2),6-2*I2),1);I3<=min(6-I2,N1);I3++) {
1538       J3 = 6-(I2)-(I3) ;
1539       S1++;
1540     }
1541   }
1543 if ((N1 <= 5) && (N1 >= 5)) {
1544   for (I3=4*1;I3<=floord(13*1-1,3);I3++) {
1545     J3 = -(6)-2*(I2)+2*I3 ;
1546     S2++;
1547     J3 = 6-(I2)-(I3) ;
1548     S1++;
1549   }
1550   if (13*6%18 == 0) {
1551     I3 = 13*6/18 ;
1552     J1 = -2*(6)+3*I3 ;
1553     if ((2*6+J1)%3 == 0) {
1554       J2 = (2*6+J1)/3 ;
1555       J3 = 3*6-4*J2 ;
1556       S1++;
1557       S2++;
1558     }
1559   }
1560   for (I3=ceild(13*1+1,3);I3<=min(N1,5*1);I3++) {
1561     J3 = 6-(I2)-(I3) ;
1562     S1++;
1563     J3 = -(6)-2*(I2)+2*I3 ;
1564     S2++;
1565   }
1566   if (5%4 == 0) {
1567     for (I3=2*5/4+1;I3<=3*5/4;I3++) {
1568       J3 = 6-(I2)-(I3) ;
1569       S1++;
1570     }
1571     if ((9*6-1)%12 == 0) {
1572       I3 = (9*6-1)/12 ;
1573       J1 = -2*(6)+3*I3 ;
1574       if ((2*6+J1)%3 == 0) {
1575         J2 = (2*6+J1)/3 ;
1576         J3 = 3*6-4*J2 ;
1577         S1++;
1578         S2++;
1579       }
1580     }
1581     if ((3*6+1)%4 == 0) {
1582       I3 = (3*6+1)/4 ;
1583       J3 = 6-(I2)-(I3) ;
1584       S1++;
1585       J3 = -(6)-2*(I2)+2*I3 ;
1586       S2++;
1587     }
1588   }
1589   for (I2=-N1+7;I2<=N1-3;I2++) {
1590     for (I3=max(max(1,ceild(6-I2,2)),6-2*I2);I3<=6-I2;I3++) {
1591       J3 = 6-(I2)-(I3) ;
1592       S1++;
1593     }
1594     for (I3=max(6-I2+1,ceild(6+2*I2,2));I3<=min(N1,floord(2*6+3*I2,3));I3++) {
1595       J3 = -(6)-2*(I2)+2*I3 ;
1596       S2++;
1597     }
1598   }
1599   for (I2=ceild(2*N1-5,2);I2<=5;I2++) {
1600     for (I3=max(max(ceild(6-I2,2),6-2*I2),1);I3<=min(6-I2,N1);I3++) {
1601       J3 = 6-(I2)-(I3) ;
1602       S1++;
1603     }
1604   }
1606 if ((N1 <= 4) && (N1 >= 3)) {
1607   if (4*N1%3 == 0) {
1608     I1 = 4*N1/3 ;
1609     if (N1%3 == 0) {
1610       for (I3=ceild(2*N1,3);I3<=floord(2*N1-1,2);I3++) {
1611         J3 = I1-(I2)-(I3) ;
1612         S1++;
1613       }
1614       J1 = -2*I1+3*N1 ;
1615       if ((2*I1+J1)%3 == 0) {
1616         J2 = (2*I1+J1)/3 ;
1617         J3 = 3*I1-4*J2 ;
1618         S1++;
1619         S2++;
1620       }
1621     }
1622     for (I2=ceild(2*N1+3,6);I2<=N1;I2++) {
1623       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
1624         J3 = I1-(I2)-(I3) ;
1625         S1++;
1626       }
1627     }
1628   }
1630 if ((N1 <= 9) && (N1 >= 7)) {
1631   J1 = -2*(7)+3*5 ;
1632   if ((2*7+J1)%3 == 0) {
1633     J2 = (2*7+J1)/3 ;
1634     J3 = 3*7-4*J2 ;
1635     S1++;
1636     S2++;
1637   }
1638   for (I3=6;I3<=5;I3++) {
1639     J3 = 7-(I2)-(I3) ;
1640     S1++;
1641     J3 = -(7)-2*(I2)+2*I3 ;
1642     S2++;
1643   }
1644   J3 = 7-(I2)-(I3) ;
1645   S1++;
1646   if (7%6 == 0) {
1647     for (I3=4*7/6;I3<=floord(13*7/6-1,3);I3++) {
1648       J3 = -(7)-2*(I2)+2*I3 ;
1649       S2++;
1650       J3 = 7-(I2)-(I3) ;
1651       S1++;
1652     }
1653     if (13*7%18 == 0) {
1654       I3 = 13*7/18 ;
1655       J1 = -2*(7)+3*I3 ;
1656       if ((2*7+J1)%3 == 0) {
1657         J2 = (2*7+J1)/3 ;
1658         J3 = 3*7-4*J2 ;
1659         S1++;
1660         S2++;
1661       }
1662     }
1663     for (I3=ceild(13*7/6+1,3);I3<=min(N1,5*7/6);I3++) {
1664       J3 = 7-(I2)-(I3) ;
1665       S1++;
1666       J3 = -(7)-2*(I2)+2*I3 ;
1667       S2++;
1668     }
1669   }
1670   if (3%2 == 0) {
1671     for (I3=2*3/2+1;I3<=3*3/2;I3++) {
1672       J3 = 7-(I2)-(I3) ;
1673       S1++;
1674     }
1675     if ((9*7-1)%12 == 0) {
1676       I3 = (9*7-1)/12 ;
1677       J1 = -2*(7)+3*I3 ;
1678       if ((2*7+J1)%3 == 0) {
1679         J2 = (2*7+J1)/3 ;
1680         J3 = 3*7-4*J2 ;
1681         S1++;
1682         S2++;
1683       }
1684     }
1685     if ((3*7+1)%4 == 0) {
1686       I3 = (3*7+1)/4 ;
1687       J3 = 7-(I2)-(I3) ;
1688       S1++;
1689       J3 = -(7)-2*(I2)+2*I3 ;
1690       S2++;
1691     }
1692   }
1693   if (7%4 == 0) {
1694     for (I3=2*7/4;I3<=floord(6*7/4-1,2);I3++) {
1695       J3 = 7-(I2)-(I3) ;
1696       S1++;
1697     }
1698     if (3*7%4 == 0) {
1699       I3 = 3*7/4 ;
1700       J1 = -2*(7)+3*I3 ;
1701       if ((2*7+J1)%3 == 0) {
1702         J2 = (2*7+J1)/3 ;
1703         J3 = 3*7-4*J2 ;
1704         S1++;
1705         S2++;
1706       }
1707     }
1708     for (I3=3*7/4+1;I3<=min(N1,floord(11*7/4,3));I3++) {
1709       J3 = -(7)-2*(I2)+2*I3 ;
1710       S2++;
1711     }
1712   }
1713   for (I2=2;I2<=floord(2*N1-7,2);I2++) {
1714     for (I3=max(max(1,ceild(7-I2,2)),7-2*I2);I3<=7-I2;I3++) {
1715       J3 = 7-(I2)-(I3) ;
1716       S1++;
1717     }
1718     for (I3=max(7-I2+1,ceild(7+2*I2,2));I3<=min(N1,floord(2*7+3*I2,3));I3++) {
1719       J3 = -(7)-2*(I2)+2*I3 ;
1720       S2++;
1721     }
1722   }
1723   for (I2=N1-3;I2<=6;I2++) {
1724     for (I3=max(max(ceild(7-I2,2),7-2*I2),1);I3<=min(7-I2,N1);I3++) {
1725       J3 = 7-(I2)-(I3) ;
1726       S1++;
1727     }
1728   }
1730 if (N1 == 6) {
1731   J1 = -2*(7)+3*5 ;
1732   if ((2*7+J1)%3 == 0) {
1733     J2 = (2*7+J1)/3 ;
1734     J3 = 3*7-4*J2 ;
1735     S1++;
1736     S2++;
1737   }
1738   for (I3=6;I3<=5;I3++) {
1739     J3 = 7-(I2)-(I3) ;
1740     S1++;
1741     J3 = -(7)-2*(I2)+2*I3 ;
1742     S2++;
1743   }
1744   J3 = 7-(I2)-(I3) ;
1745   S1++;
1746   if (7%6 == 0) {
1747     for (I3=4*7/6;I3<=floord(13*7/6-1,3);I3++) {
1748       J3 = -(7)-2*(I2)+2*I3 ;
1749       S2++;
1750       J3 = 7-(I2)-(I3) ;
1751       S1++;
1752     }
1753     if (13*7%18 == 0) {
1754       I3 = 13*7/18 ;
1755       J1 = -2*(7)+3*I3 ;
1756       if ((2*7+J1)%3 == 0) {
1757         J2 = (2*7+J1)/3 ;
1758         J3 = 3*7-4*J2 ;
1759         S1++;
1760         S2++;
1761       }
1762     }
1763     for (I3=ceild(13*7/6+1,3);I3<=min(N1,5*7/6);I3++) {
1764       J3 = 7-(I2)-(I3) ;
1765       S1++;
1766       J3 = -(7)-2*(I2)+2*I3 ;
1767       S2++;
1768     }
1769   }
1770   if (3%2 == 0) {
1771     for (I3=2*3/2+1;I3<=3*3/2;I3++) {
1772       J3 = 7-(I2)-(I3) ;
1773       S1++;
1774     }
1775     if ((9*7-1)%12 == 0) {
1776       I3 = (9*7-1)/12 ;
1777       J1 = -2*(7)+3*I3 ;
1778       if ((2*7+J1)%3 == 0) {
1779         J2 = (2*7+J1)/3 ;
1780         J3 = 3*7-4*J2 ;
1781         S1++;
1782         S2++;
1783       }
1784     }
1785     if ((3*7+1)%4 == 0) {
1786       I3 = (3*7+1)/4 ;
1787       J3 = 7-(I2)-(I3) ;
1788       S1++;
1789       J3 = -(7)-2*(I2)+2*I3 ;
1790       S2++;
1791     }
1792   }
1793   for (I3=max(max(1,ceild(7-(2),2)),7-2*(2));I3<=7-(2);I3++) {
1794     J3 = 7-(I2)-(I3) ;
1795     S1++;
1796   }
1797   for (I3=max(7-(2)+1,ceild(7+2*2,2));I3<=min(N1,floord(2*7+3*2,3));I3++) {
1798     J3 = -(7)-2*(I2)+2*I3 ;
1799     S2++;
1800   }
1801   for (I2=3;I2<=6;I2++) {
1802     for (I3=max(max(ceild(7-I2,2),7-2*I2),1);I3<=min(7-I2,N1);I3++) {
1803       J3 = 7-(I2)-(I3) ;
1804       S1++;
1805     }
1806   }
1808 if (N1 == 5) {
1809   J1 = -2*(7)+3*5 ;
1810   if ((2*7+J1)%3 == 0) {
1811     J2 = (2*7+J1)/3 ;
1812     J3 = 3*7-4*J2 ;
1813     S1++;
1814     S2++;
1815   }
1816   for (I2=2;I2<=5;I2++) {
1817     for (I3=max(max(ceild(7-I2,2),7-2*I2),1);I3<=min(7-I2,N1);I3++) {
1818       J3 = 7-(I2)-(I3) ;
1819       S1++;
1820     }
1821   }
1823 if (N1 >= 14) {
1824   for (I3=ceild(9+2*1,2);I3<=9-2*(1)-1;I3++) {
1825     J3 = -(9)-2*(I2)+2*I3 ;
1826     S2++;
1827   }
1828   for (I3=9-2*(1);I3<=floord(2*9+3*1,3);I3++) {
1829     J3 = 9-(I2)-(I3) ;
1830     S1++;
1831     J3 = -(9)-2*(I2)+2*I3 ;
1832     S2++;
1833   }
1834   for (I3=ceild(2*9+3*1+1,3);I3<=min(N1,9-(1));I3++) {
1835     J3 = 9-(I2)-(I3) ;
1836     S1++;
1837   }
1838   if (3%2 == 0) {
1839     for (I3=4*3/2;I3<=floord(13*3/2-1,3);I3++) {
1840       J3 = -(9)-2*(I2)+2*I3 ;
1841       S2++;
1842       J3 = 9-(I2)-(I3) ;
1843       S1++;
1844     }
1845     if (13*9%18 == 0) {
1846       I3 = 13*9/18 ;
1847       J1 = -2*(9)+3*I3 ;
1848       if ((2*9+J1)%3 == 0) {
1849         J2 = (2*9+J1)/3 ;
1850         J3 = 3*9-4*J2 ;
1851         S1++;
1852         S2++;
1853       }
1854     }
1855     for (I3=ceild(13*3/2+1,3);I3<=min(N1,5*3/2);I3++) {
1856       J3 = 9-(I2)-(I3) ;
1857       S1++;
1858       J3 = -(9)-2*(I2)+2*I3 ;
1859       S2++;
1860     }
1861   }
1862   for (I2=2;I2<=1;I2++) {
1863     for (I3=9-2*I2;I3<=floord(9+2*I2-1,2);I3++) {
1864       J3 = 9-(I2)-(I3) ;
1865       S1++;
1866     }
1867     for (I3=ceild(9+2*I2,2);I3<=floord(2*9+I2-1,3);I3++) {
1868       J3 = -(9)-2*(I2)+2*I3 ;
1869       S2++;
1870       J3 = 9-(I2)-(I3) ;
1871       S1++;
1872     }
1873     if ((2*9+I2)%3 == 0) {
1874       I3 = (2*9+I2)/3 ;
1875       J1 = -2*(9)+3*I3 ;
1876       if ((2*9+J1)%3 == 0) {
1877         J2 = (2*9+J1)/3 ;
1878         J3 = 3*9-4*J2 ;
1879         S1++;
1880         S2++;
1881       }
1882     }
1883     for (I3=ceild(2*9+I2+1,3);I3<=9-I2;I3++) {
1884       J3 = 9-(I2)-(I3) ;
1885       S1++;
1886       J3 = -(9)-2*(I2)+2*I3 ;
1887       S2++;
1888     }
1889   }
1890   for (I3=2*2+1;I3<=3*2;I3++) {
1891     J3 = 9-(I2)-(I3) ;
1892     S1++;
1893   }
1894   if ((9*9-1)%12 == 0) {
1895     I3 = (9*9-1)/12 ;
1896     J1 = -2*(9)+3*I3 ;
1897     if ((2*9+J1)%3 == 0) {
1898       J2 = (2*9+J1)/3 ;
1899       J3 = 3*9-4*J2 ;
1900       S1++;
1901       S2++;
1902     }
1903   }
1904   if ((3*9+1)%4 == 0) {
1905     I3 = (3*9+1)/4 ;
1906     J3 = 9-(I2)-(I3) ;
1907     S1++;
1908     J3 = -(9)-2*(I2)+2*I3 ;
1909     S2++;
1910   }
1911   for (I3=3*2+2;I3<=min(N1,floord(11*2+2,3));I3++) {
1912     J3 = -(9)-2*(I2)+2*I3 ;
1913     S2++;
1914   }
1915   if (9%4 == 0) {
1916     for (I3=2*9/4;I3<=floord(6*9/4-1,2);I3++) {
1917       J3 = 9-(I2)-(I3) ;
1918       S1++;
1919     }
1920     if (3*9%4 == 0) {
1921       I3 = 3*9/4 ;
1922       J1 = -2*(9)+3*I3 ;
1923       if ((2*9+J1)%3 == 0) {
1924         J2 = (2*9+J1)/3 ;
1925         J3 = 3*9-4*J2 ;
1926         S1++;
1927         S2++;
1928       }
1929     }
1930     for (I3=3*9/4+1;I3<=min(N1,floord(11*9/4,3));I3++) {
1931       J3 = -(9)-2*(I2)+2*I3 ;
1932       S2++;
1933     }
1934   }
1935   for (I2=3;I2<=8;I2++) {
1936     for (I3=max(max(1,ceild(9-I2,2)),9-2*I2);I3<=9-I2;I3++) {
1937       J3 = 9-(I2)-(I3) ;
1938       S1++;
1939     }
1940     for (I3=max(9-I2+1,ceild(9+2*I2,2));I3<=min(N1,floord(2*9+3*I2,3));I3++) {
1941       J3 = -(9)-2*(I2)+2*I3 ;
1942       S2++;
1943     }
1944   }
1945   for (I2=9;I2<=floord(2*N1-9,2);I2++) {
1946     for (I3=ceild(9+2*I2,2);I3<=min(N1,floord(2*9+3*I2,3));I3++) {
1947       J3 = -(9)-2*(I2)+2*I3 ;
1948       S2++;
1949     }
1950   }
1952 if ((N1 <= 13) && (N1 >= 13)) {
1953   for (I3=ceild(9+2*1,2);I3<=9-2*(1)-1;I3++) {
1954     J3 = -(9)-2*(I2)+2*I3 ;
1955     S2++;
1956   }
1957   for (I3=9-2*(1);I3<=floord(2*9+3*1,3);I3++) {
1958     J3 = 9-(I2)-(I3) ;
1959     S1++;
1960     J3 = -(9)-2*(I2)+2*I3 ;
1961     S2++;
1962   }
1963   for (I3=ceild(2*9+3*1+1,3);I3<=min(N1,9-(1));I3++) {
1964     J3 = 9-(I2)-(I3) ;
1965     S1++;
1966   }
1967   if (3%2 == 0) {
1968     for (I3=4*3/2;I3<=floord(13*3/2-1,3);I3++) {
1969       J3 = -(9)-2*(I2)+2*I3 ;
1970       S2++;
1971       J3 = 9-(I2)-(I3) ;
1972       S1++;
1973     }
1974     if (13*9%18 == 0) {
1975       I3 = 13*9/18 ;
1976       J1 = -2*(9)+3*I3 ;
1977       if ((2*9+J1)%3 == 0) {
1978         J2 = (2*9+J1)/3 ;
1979         J3 = 3*9-4*J2 ;
1980         S1++;
1981         S2++;
1982       }
1983     }
1984     for (I3=ceild(13*3/2+1,3);I3<=min(N1,5*3/2);I3++) {
1985       J3 = 9-(I2)-(I3) ;
1986       S1++;
1987       J3 = -(9)-2*(I2)+2*I3 ;
1988       S2++;
1989     }
1990   }
1991   for (I2=2;I2<=1;I2++) {
1992     for (I3=9-2*I2;I3<=floord(9+2*I2-1,2);I3++) {
1993       J3 = 9-(I2)-(I3) ;
1994       S1++;
1995     }
1996     for (I3=ceild(9+2*I2,2);I3<=floord(2*9+I2-1,3);I3++) {
1997       J3 = -(9)-2*(I2)+2*I3 ;
1998       S2++;
1999       J3 = 9-(I2)-(I3) ;
2000       S1++;
2001     }
2002     if ((2*9+I2)%3 == 0) {
2003       I3 = (2*9+I2)/3 ;
2004       J1 = -2*(9)+3*I3 ;
2005       if ((2*9+J1)%3 == 0) {
2006         J2 = (2*9+J1)/3 ;
2007         J3 = 3*9-4*J2 ;
2008         S1++;
2009         S2++;
2010       }
2011     }
2012     for (I3=ceild(2*9+I2+1,3);I3<=9-I2;I3++) {
2013       J3 = 9-(I2)-(I3) ;
2014       S1++;
2015       J3 = -(9)-2*(I2)+2*I3 ;
2016       S2++;
2017     }
2018   }
2019   for (I3=2*2+1;I3<=3*2;I3++) {
2020     J3 = 9-(I2)-(I3) ;
2021     S1++;
2022   }
2023   if ((9*9-1)%12 == 0) {
2024     I3 = (9*9-1)/12 ;
2025     J1 = -2*(9)+3*I3 ;
2026     if ((2*9+J1)%3 == 0) {
2027       J2 = (2*9+J1)/3 ;
2028       J3 = 3*9-4*J2 ;
2029       S1++;
2030       S2++;
2031     }
2032   }
2033   if ((3*9+1)%4 == 0) {
2034     I3 = (3*9+1)/4 ;
2035     J3 = 9-(I2)-(I3) ;
2036     S1++;
2037     J3 = -(9)-2*(I2)+2*I3 ;
2038     S2++;
2039   }
2040   for (I3=3*2+2;I3<=min(N1,floord(11*2+2,3));I3++) {
2041     J3 = -(9)-2*(I2)+2*I3 ;
2042     S2++;
2043   }
2044   if (9%4 == 0) {
2045     for (I3=2*9/4;I3<=floord(6*9/4-1,2);I3++) {
2046       J3 = 9-(I2)-(I3) ;
2047       S1++;
2048     }
2049     if (3*9%4 == 0) {
2050       I3 = 3*9/4 ;
2051       J1 = -2*(9)+3*I3 ;
2052       if ((2*9+J1)%3 == 0) {
2053         J2 = (2*9+J1)/3 ;
2054         J3 = 3*9-4*J2 ;
2055         S1++;
2056         S2++;
2057       }
2058     }
2059     for (I3=3*9/4+1;I3<=min(N1,floord(11*9/4,3));I3++) {
2060       J3 = -(9)-2*(I2)+2*I3 ;
2061       S2++;
2062     }
2063   }
2064   for (I2=3;I2<=8;I2++) {
2065     for (I3=max(max(1,ceild(9-I2,2)),9-2*I2);I3<=9-I2;I3++) {
2066       J3 = 9-(I2)-(I3) ;
2067       S1++;
2068     }
2069     for (I3=max(9-I2+1,ceild(9+2*I2,2));I3<=min(N1,floord(2*9+3*I2,3));I3++) {
2070       J3 = -(9)-2*(I2)+2*I3 ;
2071       S2++;
2072     }
2073   }
2075 if ((N1 <= 4) && (N1 >= 4)) {
2076   if ((4*N1+1)%3 == 0) {
2077     I1 = (4*N1+1)/3 ;
2078     for (I2=ceild(N1+1,3);I2<=N1;I2++) {
2079       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
2080         J3 = I1-(I2)-(I3) ;
2081         S1++;
2082       }
2083     }
2084   }
2086 for (I1=10;I1<=min(11,floord(2*N1,3));I1++) {
2087   for (I2=1;I2<=floord(I1-1,9);I2++) {
2088     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
2089       J3 = -I1-2*(I2)+2*I3 ;
2090       S2++;
2091     }
2092     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
2093       J3 = I1-(I2)-(I3) ;
2094       S1++;
2095     }
2096   }
2097   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
2098     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
2099       J3 = -I1-2*(I2)+2*I3 ;
2100       S2++;
2101     }
2102     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
2103       J3 = I1-(I2)-(I3) ;
2104       S1++;
2105       J3 = -I1-2*(I2)+2*I3 ;
2106       S2++;
2107     }
2108     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
2109       J3 = I1-(I2)-(I3) ;
2110       S1++;
2111     }
2112   }
2113   if (I1%6 == 0) {
2114     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
2115       J3 = -I1-2*(I2)+2*I3 ;
2116       S2++;
2117       J3 = I1-(I2)-(I3) ;
2118       S1++;
2119     }
2120     if (13*I1%18 == 0) {
2121       I3 = 13*I1/18 ;
2122       J1 = -2*I1+3*I3 ;
2123       if ((2*I1+J1)%3 == 0) {
2124         J2 = (2*I1+J1)/3 ;
2125         J3 = 3*I1-4*J2 ;
2126         S1++;
2127         S2++;
2128       }
2129     }
2130     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
2131       J3 = I1-(I2)-(I3) ;
2132       S1++;
2133       J3 = -I1-2*(I2)+2*I3 ;
2134       S2++;
2135     }
2136   }
2137   for (I2=ceild(I1+1,6);I2<=floord(I1+2,6);I2++) {
2138     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
2139       J3 = I1-(I2)-(I3) ;
2140       S1++;
2141     }
2142     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
2143       J3 = -I1-2*(I2)+2*I3 ;
2144       S2++;
2145       J3 = I1-(I2)-(I3) ;
2146       S1++;
2147     }
2148     if ((2*I1+I2)%3 == 0) {
2149       I3 = (2*I1+I2)/3 ;
2150       J1 = -2*I1+3*I3 ;
2151       if ((2*I1+J1)%3 == 0) {
2152         J2 = (2*I1+J1)/3 ;
2153         J3 = 3*I1-4*J2 ;
2154         S1++;
2155         S2++;
2156       }
2157     }
2158     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
2159       J3 = I1-(I2)-(I3) ;
2160       S1++;
2161       J3 = -I1-2*(I2)+2*I3 ;
2162       S2++;
2163     }
2164   }
2165   if ((I1-1)%4 == 0) {
2166     I2 = (I1-1)/4 ;
2167     for (I3=2*I2+1;I3<=3*I2;I3++) {
2168       J3 = I1-(I2)-(I3) ;
2169       S1++;
2170     }
2171     if ((9*I1-1)%12 == 0) {
2172       I3 = (9*I1-1)/12 ;
2173       J1 = -2*I1+3*I3 ;
2174       if ((2*I1+J1)%3 == 0) {
2175         J2 = (2*I1+J1)/3 ;
2176         J3 = 3*I1-4*J2 ;
2177         S1++;
2178         S2++;
2179       }
2180     }
2181     if ((3*I1+1)%4 == 0) {
2182       I3 = (3*I1+1)/4 ;
2183       J3 = I1-(I2)-(I3) ;
2184       S1++;
2185       J3 = -I1-2*(I2)+2*I3 ;
2186       S2++;
2187     }
2188     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
2189       J3 = -I1-2*(I2)+2*I3 ;
2190       S2++;
2191     }
2192   }
2193   if (I1%4 == 0) {
2194     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
2195       J3 = I1-(I2)-(I3) ;
2196       S1++;
2197     }
2198     if (3*I1%4 == 0) {
2199       I3 = 3*I1/4 ;
2200       J1 = -2*I1+3*I3 ;
2201       if ((2*I1+J1)%3 == 0) {
2202         J2 = (2*I1+J1)/3 ;
2203         J3 = 3*I1-4*J2 ;
2204         S1++;
2205         S2++;
2206       }
2207     }
2208     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
2209       J3 = -I1-2*(I2)+2*I3 ;
2210       S2++;
2211     }
2212   }
2213   for (I2=ceild(I1+1,4);I2<=I1-1;I2++) {
2214     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
2215       J3 = I1-(I2)-(I3) ;
2216       S1++;
2217     }
2218     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
2219       J3 = -I1-2*(I2)+2*I3 ;
2220       S2++;
2221     }
2222   }
2223   for (I2=I1;I2<=floord(-I1+2*N1,2);I2++) {
2224     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
2225       J3 = -I1-2*(I2)+2*I3 ;
2226       S2++;
2227     }
2228   }
2230 if ((N1 <= 10) && (N1 >= 8)) {
2231   for (I3=ceild(8+2*1,2);I3<=8-2*(1)-1;I3++) {
2232     J3 = -(8)-2*(I2)+2*I3 ;
2233     S2++;
2234   }
2235   for (I3=8-2*(1);I3<=floord(2*8+3*1,3);I3++) {
2236     J3 = 8-(I2)-(I3) ;
2237     S1++;
2238     J3 = -(8)-2*(I2)+2*I3 ;
2239     S2++;
2240   }
2241   for (I3=ceild(2*8+3*1+1,3);I3<=min(N1,8-(1));I3++) {
2242     J3 = 8-(I2)-(I3) ;
2243     S1++;
2244   }
2245   if (4%3 == 0) {
2246     for (I3=4*4/3;I3<=floord(13*4/3-1,3);I3++) {
2247       J3 = -(8)-2*(I2)+2*I3 ;
2248       S2++;
2249       J3 = 8-(I2)-(I3) ;
2250       S1++;
2251     }
2252     if (13*8%18 == 0) {
2253       I3 = 13*8/18 ;
2254       J1 = -2*(8)+3*I3 ;
2255       if ((2*8+J1)%3 == 0) {
2256         J2 = (2*8+J1)/3 ;
2257         J3 = 3*8-4*J2 ;
2258         S1++;
2259         S2++;
2260       }
2261     }
2262     for (I3=ceild(13*4/3+1,3);I3<=min(N1,5*4/3);I3++) {
2263       J3 = 8-(I2)-(I3) ;
2264       S1++;
2265       J3 = -(8)-2*(I2)+2*I3 ;
2266       S2++;
2267     }
2268   }
2269   if (3%2 == 0) {
2270     for (I3=8-2*(3/2);I3<=floord(8+2*3/2-1,2);I3++) {
2271       J3 = 8-(I2)-(I3) ;
2272       S1++;
2273     }
2274     for (I3=ceild(8+2*3/2,2);I3<=floord(2*8+3/2-1,3);I3++) {
2275       J3 = -(8)-2*(I2)+2*I3 ;
2276       S2++;
2277       J3 = 8-(I2)-(I3) ;
2278       S1++;
2279     }
2280     if ((2*8+3/2)%3 == 0) {
2281       I3 = (2*8+3/2)/3 ;
2282       J1 = -2*(8)+3*I3 ;
2283       if ((2*8+J1)%3 == 0) {
2284         J2 = (2*8+J1)/3 ;
2285         J3 = 3*8-4*J2 ;
2286         S1++;
2287         S2++;
2288       }
2289     }
2290     for (I3=ceild(2*8+3/2+1,3);I3<=8-(3/2);I3++) {
2291       J3 = 8-(I2)-(I3) ;
2292       S1++;
2293       J3 = -(8)-2*(I2)+2*I3 ;
2294       S2++;
2295     }
2296   }
2297   for (I3=2*2;I3<=floord(6*2-1,2);I3++) {
2298     J3 = 8-(I2)-(I3) ;
2299     S1++;
2300   }
2301   if (3*8%4 == 0) {
2302     I3 = 3*8/4 ;
2303     J1 = -2*(8)+3*I3 ;
2304     if ((2*8+J1)%3 == 0) {
2305       J2 = (2*8+J1)/3 ;
2306       J3 = 3*8-4*J2 ;
2307       S1++;
2308       S2++;
2309     }
2310   }
2311   for (I3=3*2+1;I3<=min(N1,floord(11*2,3));I3++) {
2312     J3 = -(8)-2*(I2)+2*I3 ;
2313     S2++;
2314   }
2315   for (I2=3;I2<=N1-4;I2++) {
2316     for (I3=max(max(1,ceild(8-I2,2)),8-2*I2);I3<=8-I2;I3++) {
2317       J3 = 8-(I2)-(I3) ;
2318       S1++;
2319     }
2320     for (I3=max(8-I2+1,ceild(8+2*I2,2));I3<=min(N1,floord(2*8+3*I2,3));I3++) {
2321       J3 = -(8)-2*(I2)+2*I3 ;
2322       S2++;
2323     }
2324   }
2325   for (I2=ceild(2*N1-7,2);I2<=7;I2++) {
2326     for (I3=max(max(ceild(8-I2,2),8-2*I2),1);I3<=min(8-I2,N1);I3++) {
2327       J3 = 8-(I2)-(I3) ;
2328       S1++;
2329     }
2330   }
2332 if (N1 == 6) {
2333   for (I3=ceild(8+2*1,2);I3<=8-2*(1)-1;I3++) {
2334     J3 = -(8)-2*(I2)+2*I3 ;
2335     S2++;
2336   }
2337   for (I3=8-2*(1);I3<=N1;I3++) {
2338     J3 = 8-(I2)-(I3) ;
2339     S1++;
2340     J3 = -(8)-2*(I2)+2*I3 ;
2341     S2++;
2342   }
2343   for (I3=ceild(2*N1,3);I3<=floord(2*N1-1,2);I3++) {
2344     J3 = 8-(I2)-(I3) ;
2345     S1++;
2346   }
2347   J1 = -2*(8)+3*N1 ;
2348   if ((2*8+J1)%3 == 0) {
2349     J2 = (2*8+J1)/3 ;
2350     J3 = 3*8-4*J2 ;
2351     S1++;
2352     S2++;
2353   }
2354   for (I2=3;I2<=6;I2++) {
2355     for (I3=max(max(ceild(8-I2,2),8-2*I2),1);I3<=min(8-I2,N1);I3++) {
2356       J3 = 8-(I2)-(I3) ;
2357       S1++;
2358     }
2359   }
2361 if (N1 == 4) {
2362   for (I3=6-2*(1);I3<=N1;I3++) {
2363     J3 = -(6)-2*(I2)+2*I3 ;
2364     S2++;
2365     J3 = 6-(I2)-(I3) ;
2366     S1++;
2367   }
2368   for (I2=2;I2<=4;I2++) {
2369     for (I3=max(max(ceild(6-I2,2),6-2*I2),1);I3<=min(6-I2,N1);I3++) {
2370       J3 = 6-(I2)-(I3) ;
2371       S1++;
2372     }
2373   }
2375 if (N1 >= 18) {
2376   for (I3=ceild(12+2*1,2);I3<=min(12-2*(1)-1,floord(2*12+3*1,3));I3++) {
2377     J3 = -(12)-2*(I2)+2*I3 ;
2378     S2++;
2379   }
2380   for (I3=12-2*(1);I3<=min(N1,12-(1));I3++) {
2381     J3 = 12-(I2)-(I3) ;
2382     S1++;
2383   }
2384   for (I2=2;I2<=1;I2++) {
2385     for (I3=ceild(12+2*I2,2);I3<=12-2*I2-1;I3++) {
2386       J3 = -(12)-2*(I2)+2*I3 ;
2387       S2++;
2388     }
2389     for (I3=12-2*I2;I3<=floord(2*12+3*I2,3);I3++) {
2390       J3 = 12-(I2)-(I3) ;
2391       S1++;
2392       J3 = -(12)-2*(I2)+2*I3 ;
2393       S2++;
2394     }
2395     for (I3=ceild(2*12+3*I2+1,3);I3<=min(N1,12-I2);I3++) {
2396       J3 = 12-(I2)-(I3) ;
2397       S1++;
2398     }
2399   }
2400   for (I3=4*2;I3<=floord(13*2-1,3);I3++) {
2401     J3 = -(12)-2*(I2)+2*I3 ;
2402     S2++;
2403     J3 = 12-(I2)-(I3) ;
2404     S1++;
2405   }
2406   if (13*12%18 == 0) {
2407     I3 = 13*12/18 ;
2408     J1 = -2*(12)+3*I3 ;
2409     if ((2*12+J1)%3 == 0) {
2410       J2 = (2*12+J1)/3 ;
2411       J3 = 3*12-4*J2 ;
2412       S1++;
2413       S2++;
2414     }
2415   }
2416   for (I3=ceild(13*2+1,3);I3<=min(N1,5*2);I3++) {
2417     J3 = 12-(I2)-(I3) ;
2418     S1++;
2419     J3 = -(12)-2*(I2)+2*I3 ;
2420     S2++;
2421   }
2422   for (I2=3;I2<=2;I2++) {
2423     for (I3=12-2*I2;I3<=floord(12+2*I2-1,2);I3++) {
2424       J3 = 12-(I2)-(I3) ;
2425       S1++;
2426     }
2427     for (I3=ceild(12+2*I2,2);I3<=floord(2*12+I2-1,3);I3++) {
2428       J3 = -(12)-2*(I2)+2*I3 ;
2429       S2++;
2430       J3 = 12-(I2)-(I3) ;
2431       S1++;
2432     }
2433     if ((2*12+I2)%3 == 0) {
2434       I3 = (2*12+I2)/3 ;
2435       J1 = -2*(12)+3*I3 ;
2436       if ((2*12+J1)%3 == 0) {
2437         J2 = (2*12+J1)/3 ;
2438         J3 = 3*12-4*J2 ;
2439         S1++;
2440         S2++;
2441       }
2442     }
2443     for (I3=ceild(2*12+I2+1,3);I3<=12-I2;I3++) {
2444       J3 = 12-(I2)-(I3) ;
2445       S1++;
2446       J3 = -(12)-2*(I2)+2*I3 ;
2447       S2++;
2448     }
2449   }
2450   if (5%2 == 0) {
2451     for (I3=12-2*(5/2);I3<=floord(12+2*5/2-1,2);I3++) {
2452       J3 = 12-(I2)-(I3) ;
2453       S1++;
2454     }
2455     for (I3=ceild(12+2*5/2,2);I3<=floord(2*12+5/2-1,3);I3++) {
2456       J3 = -(12)-2*(I2)+2*I3 ;
2457       S2++;
2458       J3 = 12-(I2)-(I3) ;
2459       S1++;
2460     }
2461     if ((2*12+5/2)%3 == 0) {
2462       I3 = (2*12+5/2)/3 ;
2463       J1 = -2*(12)+3*I3 ;
2464       if ((2*12+J1)%3 == 0) {
2465         J2 = (2*12+J1)/3 ;
2466         J3 = 3*12-4*J2 ;
2467         S1++;
2468         S2++;
2469       }
2470     }
2471     for (I3=ceild(2*12+5/2+1,3);I3<=12-(5/2);I3++) {
2472       J3 = 12-(I2)-(I3) ;
2473       S1++;
2474       J3 = -(12)-2*(I2)+2*I3 ;
2475       S2++;
2476     }
2477     for (I3=12-(5/2)+1;I3<=min(N1,floord(2*12+3*5/2,3));I3++) {
2478       J3 = -(12)-2*(I2)+2*I3 ;
2479       S2++;
2480     }
2481   }
2482   if (11%4 == 0) {
2483     for (I3=2*11/4+1;I3<=3*11/4;I3++) {
2484       J3 = 12-(I2)-(I3) ;
2485       S1++;
2486     }
2487     if ((9*12-1)%12 == 0) {
2488       I3 = (9*12-1)/12 ;
2489       J1 = -2*(12)+3*I3 ;
2490       if ((2*12+J1)%3 == 0) {
2491         J2 = (2*12+J1)/3 ;
2492         J3 = 3*12-4*J2 ;
2493         S1++;
2494         S2++;
2495       }
2496     }
2497     if ((3*12+1)%4 == 0) {
2498       I3 = (3*12+1)/4 ;
2499       J3 = 12-(I2)-(I3) ;
2500       S1++;
2501       J3 = -(12)-2*(I2)+2*I3 ;
2502       S2++;
2503     }
2504     for (I3=3*11/4+2;I3<=min(N1,floord(11*11/4+2,3));I3++) {
2505       J3 = -(12)-2*(I2)+2*I3 ;
2506       S2++;
2507     }
2508   }
2509   for (I3=2*3;I3<=floord(6*3-1,2);I3++) {
2510     J3 = 12-(I2)-(I3) ;
2511     S1++;
2512   }
2513   if (3*12%4 == 0) {
2514     I3 = 3*12/4 ;
2515     J1 = -2*(12)+3*I3 ;
2516     if ((2*12+J1)%3 == 0) {
2517       J2 = (2*12+J1)/3 ;
2518       J3 = 3*12-4*J2 ;
2519       S1++;
2520       S2++;
2521     }
2522   }
2523   for (I3=3*3+1;I3<=min(N1,floord(11*3,3));I3++) {
2524     J3 = -(12)-2*(I2)+2*I3 ;
2525     S2++;
2526   }
2527   for (I2=4;I2<=11;I2++) {
2528     for (I3=max(max(1,ceild(12-I2,2)),12-2*I2);I3<=12-I2;I3++) {
2529       J3 = 12-(I2)-(I3) ;
2530       S1++;
2531     }
2532     for (I3=max(12-I2+1,ceild(12+2*I2,2));I3<=min(N1,floord(2*12+3*I2,3));I3++) {
2533       J3 = -(12)-2*(I2)+2*I3 ;
2534       S2++;
2535     }
2536   }
2537   for (I2=12;I2<=N1-6;I2++) {
2538     for (I3=ceild(12+2*I2,2);I3<=min(N1,floord(2*12+3*I2,3));I3++) {
2539       J3 = -(12)-2*(I2)+2*I3 ;
2540       S2++;
2541     }
2542   }
2544 if ((N1 <= 17) && (N1 >= 17)) {
2545   for (I3=ceild(12+2*1,2);I3<=min(12-2*(1)-1,floord(2*12+3*1,3));I3++) {
2546     J3 = -(12)-2*(I2)+2*I3 ;
2547     S2++;
2548   }
2549   for (I3=12-2*(1);I3<=min(N1,12-(1));I3++) {
2550     J3 = 12-(I2)-(I3) ;
2551     S1++;
2552   }
2553   for (I2=2;I2<=1;I2++) {
2554     for (I3=ceild(12+2*I2,2);I3<=12-2*I2-1;I3++) {
2555       J3 = -(12)-2*(I2)+2*I3 ;
2556       S2++;
2557     }
2558     for (I3=12-2*I2;I3<=floord(2*12+3*I2,3);I3++) {
2559       J3 = 12-(I2)-(I3) ;
2560       S1++;
2561       J3 = -(12)-2*(I2)+2*I3 ;
2562       S2++;
2563     }
2564     for (I3=ceild(2*12+3*I2+1,3);I3<=min(N1,12-I2);I3++) {
2565       J3 = 12-(I2)-(I3) ;
2566       S1++;
2567     }
2568   }
2569   for (I3=4*2;I3<=floord(13*2-1,3);I3++) {
2570     J3 = -(12)-2*(I2)+2*I3 ;
2571     S2++;
2572     J3 = 12-(I2)-(I3) ;
2573     S1++;
2574   }
2575   if (13*12%18 == 0) {
2576     I3 = 13*12/18 ;
2577     J1 = -2*(12)+3*I3 ;
2578     if ((2*12+J1)%3 == 0) {
2579       J2 = (2*12+J1)/3 ;
2580       J3 = 3*12-4*J2 ;
2581       S1++;
2582       S2++;
2583     }
2584   }
2585   for (I3=ceild(13*2+1,3);I3<=min(N1,5*2);I3++) {
2586     J3 = 12-(I2)-(I3) ;
2587     S1++;
2588     J3 = -(12)-2*(I2)+2*I3 ;
2589     S2++;
2590   }
2591   for (I2=3;I2<=2;I2++) {
2592     for (I3=12-2*I2;I3<=floord(12+2*I2-1,2);I3++) {
2593       J3 = 12-(I2)-(I3) ;
2594       S1++;
2595     }
2596     for (I3=ceild(12+2*I2,2);I3<=floord(2*12+I2-1,3);I3++) {
2597       J3 = -(12)-2*(I2)+2*I3 ;
2598       S2++;
2599       J3 = 12-(I2)-(I3) ;
2600       S1++;
2601     }
2602     if ((2*12+I2)%3 == 0) {
2603       I3 = (2*12+I2)/3 ;
2604       J1 = -2*(12)+3*I3 ;
2605       if ((2*12+J1)%3 == 0) {
2606         J2 = (2*12+J1)/3 ;
2607         J3 = 3*12-4*J2 ;
2608         S1++;
2609         S2++;
2610       }
2611     }
2612     for (I3=ceild(2*12+I2+1,3);I3<=12-I2;I3++) {
2613       J3 = 12-(I2)-(I3) ;
2614       S1++;
2615       J3 = -(12)-2*(I2)+2*I3 ;
2616       S2++;
2617     }
2618   }
2619   if (5%2 == 0) {
2620     for (I3=12-2*(5/2);I3<=floord(12+2*5/2-1,2);I3++) {
2621       J3 = 12-(I2)-(I3) ;
2622       S1++;
2623     }
2624     for (I3=ceild(12+2*5/2,2);I3<=floord(2*12+5/2-1,3);I3++) {
2625       J3 = -(12)-2*(I2)+2*I3 ;
2626       S2++;
2627       J3 = 12-(I2)-(I3) ;
2628       S1++;
2629     }
2630     if ((2*12+5/2)%3 == 0) {
2631       I3 = (2*12+5/2)/3 ;
2632       J1 = -2*(12)+3*I3 ;
2633       if ((2*12+J1)%3 == 0) {
2634         J2 = (2*12+J1)/3 ;
2635         J3 = 3*12-4*J2 ;
2636         S1++;
2637         S2++;
2638       }
2639     }
2640     for (I3=ceild(2*12+5/2+1,3);I3<=12-(5/2);I3++) {
2641       J3 = 12-(I2)-(I3) ;
2642       S1++;
2643       J3 = -(12)-2*(I2)+2*I3 ;
2644       S2++;
2645     }
2646     for (I3=12-(5/2)+1;I3<=min(N1,floord(2*12+3*5/2,3));I3++) {
2647       J3 = -(12)-2*(I2)+2*I3 ;
2648       S2++;
2649     }
2650   }
2651   if (11%4 == 0) {
2652     for (I3=2*11/4+1;I3<=3*11/4;I3++) {
2653       J3 = 12-(I2)-(I3) ;
2654       S1++;
2655     }
2656     if ((9*12-1)%12 == 0) {
2657       I3 = (9*12-1)/12 ;
2658       J1 = -2*(12)+3*I3 ;
2659       if ((2*12+J1)%3 == 0) {
2660         J2 = (2*12+J1)/3 ;
2661         J3 = 3*12-4*J2 ;
2662         S1++;
2663         S2++;
2664       }
2665     }
2666     if ((3*12+1)%4 == 0) {
2667       I3 = (3*12+1)/4 ;
2668       J3 = 12-(I2)-(I3) ;
2669       S1++;
2670       J3 = -(12)-2*(I2)+2*I3 ;
2671       S2++;
2672     }
2673     for (I3=3*11/4+2;I3<=min(N1,floord(11*11/4+2,3));I3++) {
2674       J3 = -(12)-2*(I2)+2*I3 ;
2675       S2++;
2676     }
2677   }
2678   for (I3=2*3;I3<=floord(6*3-1,2);I3++) {
2679     J3 = 12-(I2)-(I3) ;
2680     S1++;
2681   }
2682   if (3*12%4 == 0) {
2683     I3 = 3*12/4 ;
2684     J1 = -2*(12)+3*I3 ;
2685     if ((2*12+J1)%3 == 0) {
2686       J2 = (2*12+J1)/3 ;
2687       J3 = 3*12-4*J2 ;
2688       S1++;
2689       S2++;
2690     }
2691   }
2692   for (I3=3*3+1;I3<=min(N1,floord(11*3,3));I3++) {
2693     J3 = -(12)-2*(I2)+2*I3 ;
2694     S2++;
2695   }
2696   for (I2=4;I2<=11;I2++) {
2697     for (I3=max(max(1,ceild(12-I2,2)),12-2*I2);I3<=12-I2;I3++) {
2698       J3 = 12-(I2)-(I3) ;
2699       S1++;
2700     }
2701     for (I3=max(12-I2+1,ceild(12+2*I2,2));I3<=min(N1,floord(2*12+3*I2,3));I3++) {
2702       J3 = -(12)-2*(I2)+2*I3 ;
2703       S2++;
2704     }
2705   }
2707 for (I1=max(10,ceild(2*N1+1,3));I1<=min(11,floord(2*N1+2,3));I1++) {
2708   for (I2=1;I2<=floord(I1-1,9);I2++) {
2709     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
2710       J3 = -I1-2*(I2)+2*I3 ;
2711       S2++;
2712     }
2713     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
2714       J3 = I1-(I2)-(I3) ;
2715       S1++;
2716     }
2717   }
2718   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
2719     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
2720       J3 = -I1-2*(I2)+2*I3 ;
2721       S2++;
2722     }
2723     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
2724       J3 = I1-(I2)-(I3) ;
2725       S1++;
2726       J3 = -I1-2*(I2)+2*I3 ;
2727       S2++;
2728     }
2729     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
2730       J3 = I1-(I2)-(I3) ;
2731       S1++;
2732     }
2733   }
2734   if (I1%6 == 0) {
2735     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
2736       J3 = -I1-2*(I2)+2*I3 ;
2737       S2++;
2738       J3 = I1-(I2)-(I3) ;
2739       S1++;
2740     }
2741     if (13*I1%18 == 0) {
2742       I3 = 13*I1/18 ;
2743       J1 = -2*I1+3*I3 ;
2744       if ((2*I1+J1)%3 == 0) {
2745         J2 = (2*I1+J1)/3 ;
2746         J3 = 3*I1-4*J2 ;
2747         S1++;
2748         S2++;
2749       }
2750     }
2751     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
2752       J3 = I1-(I2)-(I3) ;
2753       S1++;
2754       J3 = -I1-2*(I2)+2*I3 ;
2755       S2++;
2756     }
2757   }
2758   for (I2=ceild(I1+1,6);I2<=floord(I1+2,6);I2++) {
2759     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
2760       J3 = I1-(I2)-(I3) ;
2761       S1++;
2762     }
2763     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
2764       J3 = -I1-2*(I2)+2*I3 ;
2765       S2++;
2766       J3 = I1-(I2)-(I3) ;
2767       S1++;
2768     }
2769     if ((2*I1+I2)%3 == 0) {
2770       I3 = (2*I1+I2)/3 ;
2771       J1 = -2*I1+3*I3 ;
2772       if ((2*I1+J1)%3 == 0) {
2773         J2 = (2*I1+J1)/3 ;
2774         J3 = 3*I1-4*J2 ;
2775         S1++;
2776         S2++;
2777       }
2778     }
2779     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
2780       J3 = I1-(I2)-(I3) ;
2781       S1++;
2782       J3 = -I1-2*(I2)+2*I3 ;
2783       S2++;
2784     }
2785   }
2786   if ((I1-1)%4 == 0) {
2787     I2 = (I1-1)/4 ;
2788     for (I3=2*I2+1;I3<=3*I2;I3++) {
2789       J3 = I1-(I2)-(I3) ;
2790       S1++;
2791     }
2792     if ((9*I1-1)%12 == 0) {
2793       I3 = (9*I1-1)/12 ;
2794       J1 = -2*I1+3*I3 ;
2795       if ((2*I1+J1)%3 == 0) {
2796         J2 = (2*I1+J1)/3 ;
2797         J3 = 3*I1-4*J2 ;
2798         S1++;
2799         S2++;
2800       }
2801     }
2802     if ((3*I1+1)%4 == 0) {
2803       I3 = (3*I1+1)/4 ;
2804       J3 = I1-(I2)-(I3) ;
2805       S1++;
2806       J3 = -I1-2*(I2)+2*I3 ;
2807       S2++;
2808     }
2809     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
2810       J3 = -I1-2*(I2)+2*I3 ;
2811       S2++;
2812     }
2813   }
2814   if (I1%4 == 0) {
2815     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
2816       J3 = I1-(I2)-(I3) ;
2817       S1++;
2818     }
2819     if (3*I1%4 == 0) {
2820       I3 = 3*I1/4 ;
2821       J1 = -2*I1+3*I3 ;
2822       if ((2*I1+J1)%3 == 0) {
2823         J2 = (2*I1+J1)/3 ;
2824         J3 = 3*I1-4*J2 ;
2825         S1++;
2826         S2++;
2827       }
2828     }
2829     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
2830       J3 = -I1-2*(I2)+2*I3 ;
2831       S2++;
2832     }
2833   }
2834   for (I2=ceild(I1+1,4);I2<=I1-1;I2++) {
2835     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
2836       J3 = I1-(I2)-(I3) ;
2837       S1++;
2838     }
2839     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
2840       J3 = -I1-2*(I2)+2*I3 ;
2841       S2++;
2842     }
2843   }
2845 if ((N1 <= 12) && (N1 >= 9)) {
2846   for (I3=ceild(9+2*1,2);I3<=9-2*(1)-1;I3++) {
2847     J3 = -(9)-2*(I2)+2*I3 ;
2848     S2++;
2849   }
2850   for (I3=9-2*(1);I3<=floord(2*9+3*1,3);I3++) {
2851     J3 = 9-(I2)-(I3) ;
2852     S1++;
2853     J3 = -(9)-2*(I2)+2*I3 ;
2854     S2++;
2855   }
2856   for (I3=ceild(2*9+3*1+1,3);I3<=min(N1,9-(1));I3++) {
2857     J3 = 9-(I2)-(I3) ;
2858     S1++;
2859   }
2860   if (3%2 == 0) {
2861     for (I3=4*3/2;I3<=floord(13*3/2-1,3);I3++) {
2862       J3 = -(9)-2*(I2)+2*I3 ;
2863       S2++;
2864       J3 = 9-(I2)-(I3) ;
2865       S1++;
2866     }
2867     if (13*9%18 == 0) {
2868       I3 = 13*9/18 ;
2869       J1 = -2*(9)+3*I3 ;
2870       if ((2*9+J1)%3 == 0) {
2871         J2 = (2*9+J1)/3 ;
2872         J3 = 3*9-4*J2 ;
2873         S1++;
2874         S2++;
2875       }
2876     }
2877     for (I3=ceild(13*3/2+1,3);I3<=min(N1,5*3/2);I3++) {
2878       J3 = 9-(I2)-(I3) ;
2879       S1++;
2880       J3 = -(9)-2*(I2)+2*I3 ;
2881       S2++;
2882     }
2883   }
2884   for (I2=max(2,-N1+10);I2<=1;I2++) {
2885     for (I3=9-2*I2;I3<=floord(9+2*I2-1,2);I3++) {
2886       J3 = 9-(I2)-(I3) ;
2887       S1++;
2888     }
2889     for (I3=ceild(9+2*I2,2);I3<=floord(2*9+I2-1,3);I3++) {
2890       J3 = -(9)-2*(I2)+2*I3 ;
2891       S2++;
2892       J3 = 9-(I2)-(I3) ;
2893       S1++;
2894     }
2895     if ((2*9+I2)%3 == 0) {
2896       I3 = (2*9+I2)/3 ;
2897       J1 = -2*(9)+3*I3 ;
2898       if ((2*9+J1)%3 == 0) {
2899         J2 = (2*9+J1)/3 ;
2900         J3 = 3*9-4*J2 ;
2901         S1++;
2902         S2++;
2903       }
2904     }
2905     for (I3=ceild(2*9+I2+1,3);I3<=9-I2;I3++) {
2906       J3 = 9-(I2)-(I3) ;
2907       S1++;
2908       J3 = -(9)-2*(I2)+2*I3 ;
2909       S2++;
2910     }
2911   }
2912   for (I3=2*2+1;I3<=3*2;I3++) {
2913     J3 = 9-(I2)-(I3) ;
2914     S1++;
2915   }
2916   if ((9*9-1)%12 == 0) {
2917     I3 = (9*9-1)/12 ;
2918     J1 = -2*(9)+3*I3 ;
2919     if ((2*9+J1)%3 == 0) {
2920       J2 = (2*9+J1)/3 ;
2921       J3 = 3*9-4*J2 ;
2922       S1++;
2923       S2++;
2924     }
2925   }
2926   if ((3*9+1)%4 == 0) {
2927     I3 = (3*9+1)/4 ;
2928     J3 = 9-(I2)-(I3) ;
2929     S1++;
2930     J3 = -(9)-2*(I2)+2*I3 ;
2931     S2++;
2932   }
2933   for (I3=3*2+2;I3<=min(N1,floord(11*2+2,3));I3++) {
2934     J3 = -(9)-2*(I2)+2*I3 ;
2935     S2++;
2936   }
2937   if (9%4 == 0) {
2938     for (I3=2*9/4;I3<=floord(6*9/4-1,2);I3++) {
2939       J3 = 9-(I2)-(I3) ;
2940       S1++;
2941     }
2942     if (3*9%4 == 0) {
2943       I3 = 3*9/4 ;
2944       J1 = -2*(9)+3*I3 ;
2945       if ((2*9+J1)%3 == 0) {
2946         J2 = (2*9+J1)/3 ;
2947         J3 = 3*9-4*J2 ;
2948         S1++;
2949         S2++;
2950       }
2951     }
2952     for (I3=3*9/4+1;I3<=min(N1,floord(11*9/4,3));I3++) {
2953       J3 = -(9)-2*(I2)+2*I3 ;
2954       S2++;
2955     }
2956   }
2957   for (I2=3;I2<=floord(2*N1-9,2);I2++) {
2958     for (I3=max(max(1,ceild(9-I2,2)),9-2*I2);I3<=9-I2;I3++) {
2959       J3 = 9-(I2)-(I3) ;
2960       S1++;
2961     }
2962     for (I3=max(9-I2+1,ceild(9+2*I2,2));I3<=min(N1,floord(2*9+3*I2,3));I3++) {
2963       J3 = -(9)-2*(I2)+2*I3 ;
2964       S2++;
2965     }
2966   }
2967   for (I2=N1-4;I2<=8;I2++) {
2968     for (I3=max(max(ceild(9-I2,2),9-2*I2),1);I3<=min(9-I2,N1);I3++) {
2969       J3 = 9-(I2)-(I3) ;
2970       S1++;
2971     }
2972   }
2974 if (N1 == 8) {
2975   for (I3=ceild(9+2*1,2);I3<=9-2*(1)-1;I3++) {
2976     J3 = -(9)-2*(I2)+2*I3 ;
2977     S2++;
2978   }
2979   for (I3=9-2*(1);I3<=floord(2*9+3*1,3);I3++) {
2980     J3 = 9-(I2)-(I3) ;
2981     S1++;
2982     J3 = -(9)-2*(I2)+2*I3 ;
2983     S2++;
2984   }
2985   for (I3=ceild(2*9+3*1+1,3);I3<=min(N1,9-(1));I3++) {
2986     J3 = 9-(I2)-(I3) ;
2987     S1++;
2988   }
2989   if (3%2 == 0) {
2990     for (I3=4*3/2;I3<=floord(13*3/2-1,3);I3++) {
2991       J3 = -(9)-2*(I2)+2*I3 ;
2992       S2++;
2993       J3 = 9-(I2)-(I3) ;
2994       S1++;
2995     }
2996     if (13*9%18 == 0) {
2997       I3 = 13*9/18 ;
2998       J1 = -2*(9)+3*I3 ;
2999       if ((2*9+J1)%3 == 0) {
3000         J2 = (2*9+J1)/3 ;
3001         J3 = 3*9-4*J2 ;
3002         S1++;
3003         S2++;
3004       }
3005     }
3006     for (I3=ceild(13*3/2+1,3);I3<=min(N1,5*3/2);I3++) {
3007       J3 = 9-(I2)-(I3) ;
3008       S1++;
3009       J3 = -(9)-2*(I2)+2*I3 ;
3010       S2++;
3011     }
3012   }
3013   for (I3=2*2+1;I3<=3*2;I3++) {
3014     J3 = 9-(I2)-(I3) ;
3015     S1++;
3016   }
3017   if ((9*9-1)%12 == 0) {
3018     I3 = (9*9-1)/12 ;
3019     J1 = -2*(9)+3*I3 ;
3020     if ((2*9+J1)%3 == 0) {
3021       J2 = (2*9+J1)/3 ;
3022       J3 = 3*9-4*J2 ;
3023       S1++;
3024       S2++;
3025     }
3026   }
3027   if ((3*9+1)%4 == 0) {
3028     I3 = (3*9+1)/4 ;
3029     J3 = 9-(I2)-(I3) ;
3030     S1++;
3031     J3 = -(9)-2*(I2)+2*I3 ;
3032     S2++;
3033   }
3034   for (I3=3*2+2;I3<=min(N1,floord(11*2+2,3));I3++) {
3035     J3 = -(9)-2*(I2)+2*I3 ;
3036     S2++;
3037   }
3038   if (9%4 == 0) {
3039     for (I3=2*9/4;I3<=floord(6*9/4-1,2);I3++) {
3040       J3 = 9-(I2)-(I3) ;
3041       S1++;
3042     }
3043     if (3*9%4 == 0) {
3044       I3 = 3*9/4 ;
3045       J1 = -2*(9)+3*I3 ;
3046       if ((2*9+J1)%3 == 0) {
3047         J2 = (2*9+J1)/3 ;
3048         J3 = 3*9-4*J2 ;
3049         S1++;
3050         S2++;
3051       }
3052     }
3053     for (I3=3*9/4+1;I3<=min(N1,floord(11*9/4,3));I3++) {
3054       J3 = -(9)-2*(I2)+2*I3 ;
3055       S2++;
3056     }
3057   }
3058   for (I3=max(max(1,ceild(9-(3),2)),9-2*(3));I3<=9-(3);I3++) {
3059     J3 = 9-(I2)-(I3) ;
3060     S1++;
3061   }
3062   for (I3=max(9-(3)+1,ceild(9+2*3,2));I3<=min(N1,floord(2*9+3*3,3));I3++) {
3063     J3 = -(9)-2*(I2)+2*I3 ;
3064     S2++;
3065   }
3066   for (I2=4;I2<=8;I2++) {
3067     for (I3=max(max(ceild(9-I2,2),9-2*I2),1);I3<=min(9-I2,N1);I3++) {
3068       J3 = 9-(I2)-(I3) ;
3069       S1++;
3070     }
3071   }
3073 for (I1=max(8,ceild(4*N1-13,2));I1<=floord(4*N1-4,3);I1++) {
3074   for (I2=1;I2<=floord(I1-1,7);I2++) {
3075     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
3076       J3 = -I1-2*(I2)+2*I3 ;
3077       S2++;
3078     }
3079     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
3080       J3 = I1-(I2)-(I3) ;
3081       S1++;
3082       J3 = -I1-2*(I2)+2*I3 ;
3083       S2++;
3084     }
3085     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
3086       J3 = I1-(I2)-(I3) ;
3087       S1++;
3088     }
3089   }
3090   if (I1%6 == 0) {
3091     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
3092       J3 = -I1-2*(I2)+2*I3 ;
3093       S2++;
3094       J3 = I1-(I2)-(I3) ;
3095       S1++;
3096     }
3097     if (13*I1%18 == 0) {
3098       I3 = 13*I1/18 ;
3099       J1 = -2*I1+3*I3 ;
3100       if ((2*I1+J1)%3 == 0) {
3101         J2 = (2*I1+J1)/3 ;
3102         J3 = 3*I1-4*J2 ;
3103         S1++;
3104         S2++;
3105       }
3106     }
3107     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
3108       J3 = I1-(I2)-(I3) ;
3109       S1++;
3110       J3 = -I1-2*(I2)+2*I3 ;
3111       S2++;
3112     }
3113   }
3114   if (I1%4 == 0) {
3115     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
3116       J3 = I1-(I2)-(I3) ;
3117       S1++;
3118     }
3119     if (3*I1%4 == 0) {
3120       I3 = 3*I1/4 ;
3121       J1 = -2*I1+3*I3 ;
3122       if ((2*I1+J1)%3 == 0) {
3123         J2 = (2*I1+J1)/3 ;
3124         J3 = 3*I1-4*J2 ;
3125         S1++;
3126         S2++;
3127       }
3128     }
3129     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
3130       J3 = -I1-2*(I2)+2*I3 ;
3131       S2++;
3132     }
3133   }
3134   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
3135     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
3136       J3 = I1-(I2)-(I3) ;
3137       S1++;
3138     }
3139     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
3140       J3 = -I1-2*(I2)+2*I3 ;
3141       S2++;
3142     }
3143   }
3144   for (I2=ceild(-I1+2*N1+1,2);I2<=min(N1,I1-1);I2++) {
3145     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
3146       J3 = I1-(I2)-(I3) ;
3147       S1++;
3148     }
3149   }
3151 if (N1 >= 20) {
3152   for (I3=ceild(13+2*1,2);I3<=min(13-2*(1)-1,floord(2*13+3*1,3));I3++) {
3153     J3 = -(13)-2*(I2)+2*I3 ;
3154     S2++;
3155   }
3156   for (I3=13-2*(1);I3<=min(N1,13-(1));I3++) {
3157     J3 = 13-(I2)-(I3) ;
3158     S1++;
3159   }
3160   for (I2=2;I2<=1;I2++) {
3161     for (I3=ceild(13+2*I2,2);I3<=13-2*I2-1;I3++) {
3162       J3 = -(13)-2*(I2)+2*I3 ;
3163       S2++;
3164     }
3165     for (I3=13-2*I2;I3<=floord(2*13+3*I2,3);I3++) {
3166       J3 = 13-(I2)-(I3) ;
3167       S1++;
3168       J3 = -(13)-2*(I2)+2*I3 ;
3169       S2++;
3170     }
3171     for (I3=ceild(2*13+3*I2+1,3);I3<=min(N1,13-I2);I3++) {
3172       J3 = 13-(I2)-(I3) ;
3173       S1++;
3174     }
3175   }
3176   for (I3=4*2+1;I3<=floord(13*2+1,3);I3++) {
3177     J3 = -(13)-2*(I2)+2*I3 ;
3178     S2++;
3179     J3 = 13-(I2)-(I3) ;
3180     S1++;
3181   }
3182   if ((13*13-1)%18 == 0) {
3183     I3 = (13*13-1)/18 ;
3184     J1 = -2*(13)+3*I3 ;
3185     if ((2*13+J1)%3 == 0) {
3186       J2 = (2*13+J1)/3 ;
3187       J3 = 3*13-4*J2 ;
3188       S1++;
3189       S2++;
3190     }
3191   }
3192   for (I3=ceild(13*2+3,3);I3<=floord(15*2+2,3);I3++) {
3193     J3 = 13-(I2)-(I3) ;
3194     S1++;
3195     J3 = -(13)-2*(I2)+2*I3 ;
3196     S2++;
3197   }
3198   if ((5*13+1)%6 == 0) {
3199     I3 = (5*13+1)/6 ;
3200     J3 = 13-(I2)-(I3) ;
3201     S1++;
3202   }
3203   if (13%6 == 0) {
3204     for (I3=4*13/6;I3<=floord(13*13/6-1,3);I3++) {
3205       J3 = -(13)-2*(I2)+2*I3 ;
3206       S2++;
3207       J3 = 13-(I2)-(I3) ;
3208       S1++;
3209     }
3210     if (13*13%18 == 0) {
3211       I3 = 13*13/18 ;
3212       J1 = -2*(13)+3*I3 ;
3213       if ((2*13+J1)%3 == 0) {
3214         J2 = (2*13+J1)/3 ;
3215         J3 = 3*13-4*J2 ;
3216         S1++;
3217         S2++;
3218       }
3219     }
3220     for (I3=ceild(13*13/6+1,3);I3<=min(N1,5*13/6);I3++) {
3221       J3 = 13-(I2)-(I3) ;
3222       S1++;
3223       J3 = -(13)-2*(I2)+2*I3 ;
3224       S2++;
3225     }
3226   }
3227   for (I2=3;I2<=2;I2++) {
3228     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
3229       J3 = 13-(I2)-(I3) ;
3230       S1++;
3231     }
3232     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
3233       J3 = -(13)-2*(I2)+2*I3 ;
3234       S2++;
3235       J3 = 13-(I2)-(I3) ;
3236       S1++;
3237     }
3238     if ((2*13+I2)%3 == 0) {
3239       I3 = (2*13+I2)/3 ;
3240       J1 = -2*(13)+3*I3 ;
3241       if ((2*13+J1)%3 == 0) {
3242         J2 = (2*13+J1)/3 ;
3243         J3 = 3*13-4*J2 ;
3244         S1++;
3245         S2++;
3246       }
3247     }
3248     for (I3=ceild(2*13+I2+1,3);I3<=13-I2;I3++) {
3249       J3 = 13-(I2)-(I3) ;
3250       S1++;
3251       J3 = -(13)-2*(I2)+2*I3 ;
3252       S2++;
3253     }
3254   }
3255   for (I2=3;I2<=2;I2++) {
3256     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
3257       J3 = 13-(I2)-(I3) ;
3258       S1++;
3259     }
3260     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
3261       J3 = -(13)-2*(I2)+2*I3 ;
3262       S2++;
3263       J3 = 13-(I2)-(I3) ;
3264       S1++;
3265     }
3266     if ((2*13+I2)%3 == 0) {
3267       I3 = (2*13+I2)/3 ;
3268       J1 = -2*(13)+3*I3 ;
3269       if ((2*13+J1)%3 == 0) {
3270         J2 = (2*13+J1)/3 ;
3271         J3 = 3*13-4*J2 ;
3272         S1++;
3273         S2++;
3274       }
3275     }
3276     for (I3=ceild(2*13+I2+1,3);I3<=13-I2;I3++) {
3277       J3 = 13-(I2)-(I3) ;
3278       S1++;
3279       J3 = -(13)-2*(I2)+2*I3 ;
3280       S2++;
3281     }
3282     for (I3=13-I2+1;I3<=min(N1,floord(2*13+3*I2,3));I3++) {
3283       J3 = -(13)-2*(I2)+2*I3 ;
3284       S2++;
3285     }
3286   }
3287   for (I3=2*3+1;I3<=3*3;I3++) {
3288     J3 = 13-(I2)-(I3) ;
3289     S1++;
3290   }
3291   if ((9*13-1)%12 == 0) {
3292     I3 = (9*13-1)/12 ;
3293     J1 = -2*(13)+3*I3 ;
3294     if ((2*13+J1)%3 == 0) {
3295       J2 = (2*13+J1)/3 ;
3296       J3 = 3*13-4*J2 ;
3297       S1++;
3298       S2++;
3299     }
3300   }
3301   if ((3*13+1)%4 == 0) {
3302     I3 = (3*13+1)/4 ;
3303     J3 = 13-(I2)-(I3) ;
3304     S1++;
3305     J3 = -(13)-2*(I2)+2*I3 ;
3306     S2++;
3307   }
3308   for (I3=3*3+2;I3<=min(N1,floord(11*3+2,3));I3++) {
3309     J3 = -(13)-2*(I2)+2*I3 ;
3310     S2++;
3311   }
3312   if (13%4 == 0) {
3313     for (I3=2*13/4;I3<=floord(6*13/4-1,2);I3++) {
3314       J3 = 13-(I2)-(I3) ;
3315       S1++;
3316     }
3317     if (3*13%4 == 0) {
3318       I3 = 3*13/4 ;
3319       J1 = -2*(13)+3*I3 ;
3320       if ((2*13+J1)%3 == 0) {
3321         J2 = (2*13+J1)/3 ;
3322         J3 = 3*13-4*J2 ;
3323         S1++;
3324         S2++;
3325       }
3326     }
3327     for (I3=3*13/4+1;I3<=min(N1,floord(11*13/4,3));I3++) {
3328       J3 = -(13)-2*(I2)+2*I3 ;
3329       S2++;
3330     }
3331   }
3332   for (I2=4;I2<=12;I2++) {
3333     for (I3=max(max(1,ceild(13-I2,2)),13-2*I2);I3<=13-I2;I3++) {
3334       J3 = 13-(I2)-(I3) ;
3335       S1++;
3336     }
3337     for (I3=max(13-I2+1,ceild(13+2*I2,2));I3<=min(N1,floord(2*13+3*I2,3));I3++) {
3338       J3 = -(13)-2*(I2)+2*I3 ;
3339       S2++;
3340     }
3341   }
3342   for (I2=13;I2<=floord(2*N1-13,2);I2++) {
3343     for (I3=ceild(13+2*I2,2);I3<=min(N1,floord(2*13+3*I2,3));I3++) {
3344       J3 = -(13)-2*(I2)+2*I3 ;
3345       S2++;
3346     }
3347   }
3349 if ((N1 <= 19) && (N1 >= 19)) {
3350   for (I3=ceild(13+2*1,2);I3<=min(13-2*(1)-1,floord(2*13+3*1,3));I3++) {
3351     J3 = -(13)-2*(I2)+2*I3 ;
3352     S2++;
3353   }
3354   for (I3=13-2*(1);I3<=min(N1,13-(1));I3++) {
3355     J3 = 13-(I2)-(I3) ;
3356     S1++;
3357   }
3358   for (I2=2;I2<=1;I2++) {
3359     for (I3=ceild(13+2*I2,2);I3<=13-2*I2-1;I3++) {
3360       J3 = -(13)-2*(I2)+2*I3 ;
3361       S2++;
3362     }
3363     for (I3=13-2*I2;I3<=floord(2*13+3*I2,3);I3++) {
3364       J3 = 13-(I2)-(I3) ;
3365       S1++;
3366       J3 = -(13)-2*(I2)+2*I3 ;
3367       S2++;
3368     }
3369     for (I3=ceild(2*13+3*I2+1,3);I3<=min(N1,13-I2);I3++) {
3370       J3 = 13-(I2)-(I3) ;
3371       S1++;
3372     }
3373   }
3374   for (I3=4*2+1;I3<=floord(13*2+1,3);I3++) {
3375     J3 = -(13)-2*(I2)+2*I3 ;
3376     S2++;
3377     J3 = 13-(I2)-(I3) ;
3378     S1++;
3379   }
3380   if ((13*13-1)%18 == 0) {
3381     I3 = (13*13-1)/18 ;
3382     J1 = -2*(13)+3*I3 ;
3383     if ((2*13+J1)%3 == 0) {
3384       J2 = (2*13+J1)/3 ;
3385       J3 = 3*13-4*J2 ;
3386       S1++;
3387       S2++;
3388     }
3389   }
3390   for (I3=ceild(13*2+3,3);I3<=floord(15*2+2,3);I3++) {
3391     J3 = 13-(I2)-(I3) ;
3392     S1++;
3393     J3 = -(13)-2*(I2)+2*I3 ;
3394     S2++;
3395   }
3396   if ((5*13+1)%6 == 0) {
3397     I3 = (5*13+1)/6 ;
3398     J3 = 13-(I2)-(I3) ;
3399     S1++;
3400   }
3401   if (13%6 == 0) {
3402     for (I3=4*13/6;I3<=floord(13*13/6-1,3);I3++) {
3403       J3 = -(13)-2*(I2)+2*I3 ;
3404       S2++;
3405       J3 = 13-(I2)-(I3) ;
3406       S1++;
3407     }
3408     if (13*13%18 == 0) {
3409       I3 = 13*13/18 ;
3410       J1 = -2*(13)+3*I3 ;
3411       if ((2*13+J1)%3 == 0) {
3412         J2 = (2*13+J1)/3 ;
3413         J3 = 3*13-4*J2 ;
3414         S1++;
3415         S2++;
3416       }
3417     }
3418     for (I3=ceild(13*13/6+1,3);I3<=min(N1,5*13/6);I3++) {
3419       J3 = 13-(I2)-(I3) ;
3420       S1++;
3421       J3 = -(13)-2*(I2)+2*I3 ;
3422       S2++;
3423     }
3424   }
3425   for (I2=3;I2<=2;I2++) {
3426     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
3427       J3 = 13-(I2)-(I3) ;
3428       S1++;
3429     }
3430     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
3431       J3 = -(13)-2*(I2)+2*I3 ;
3432       S2++;
3433       J3 = 13-(I2)-(I3) ;
3434       S1++;
3435     }
3436     if ((2*13+I2)%3 == 0) {
3437       I3 = (2*13+I2)/3 ;
3438       J1 = -2*(13)+3*I3 ;
3439       if ((2*13+J1)%3 == 0) {
3440         J2 = (2*13+J1)/3 ;
3441         J3 = 3*13-4*J2 ;
3442         S1++;
3443         S2++;
3444       }
3445     }
3446     for (I3=ceild(2*13+I2+1,3);I3<=13-I2;I3++) {
3447       J3 = 13-(I2)-(I3) ;
3448       S1++;
3449       J3 = -(13)-2*(I2)+2*I3 ;
3450       S2++;
3451     }
3452   }
3453   for (I2=3;I2<=2;I2++) {
3454     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
3455       J3 = 13-(I2)-(I3) ;
3456       S1++;
3457     }
3458     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
3459       J3 = -(13)-2*(I2)+2*I3 ;
3460       S2++;
3461       J3 = 13-(I2)-(I3) ;
3462       S1++;
3463     }
3464     if ((2*13+I2)%3 == 0) {
3465       I3 = (2*13+I2)/3 ;
3466       J1 = -2*(13)+3*I3 ;
3467       if ((2*13+J1)%3 == 0) {
3468         J2 = (2*13+J1)/3 ;
3469         J3 = 3*13-4*J2 ;
3470         S1++;
3471         S2++;
3472       }
3473     }
3474     for (I3=ceild(2*13+I2+1,3);I3<=13-I2;I3++) {
3475       J3 = 13-(I2)-(I3) ;
3476       S1++;
3477       J3 = -(13)-2*(I2)+2*I3 ;
3478       S2++;
3479     }
3480     for (I3=13-I2+1;I3<=min(N1,floord(2*13+3*I2,3));I3++) {
3481       J3 = -(13)-2*(I2)+2*I3 ;
3482       S2++;
3483     }
3484   }
3485   for (I3=2*3+1;I3<=3*3;I3++) {
3486     J3 = 13-(I2)-(I3) ;
3487     S1++;
3488   }
3489   if ((9*13-1)%12 == 0) {
3490     I3 = (9*13-1)/12 ;
3491     J1 = -2*(13)+3*I3 ;
3492     if ((2*13+J1)%3 == 0) {
3493       J2 = (2*13+J1)/3 ;
3494       J3 = 3*13-4*J2 ;
3495       S1++;
3496       S2++;
3497     }
3498   }
3499   if ((3*13+1)%4 == 0) {
3500     I3 = (3*13+1)/4 ;
3501     J3 = 13-(I2)-(I3) ;
3502     S1++;
3503     J3 = -(13)-2*(I2)+2*I3 ;
3504     S2++;
3505   }
3506   for (I3=3*3+2;I3<=min(N1,floord(11*3+2,3));I3++) {
3507     J3 = -(13)-2*(I2)+2*I3 ;
3508     S2++;
3509   }
3510   if (13%4 == 0) {
3511     for (I3=2*13/4;I3<=floord(6*13/4-1,2);I3++) {
3512       J3 = 13-(I2)-(I3) ;
3513       S1++;
3514     }
3515     if (3*13%4 == 0) {
3516       I3 = 3*13/4 ;
3517       J1 = -2*(13)+3*I3 ;
3518       if ((2*13+J1)%3 == 0) {
3519         J2 = (2*13+J1)/3 ;
3520         J3 = 3*13-4*J2 ;
3521         S1++;
3522         S2++;
3523       }
3524     }
3525     for (I3=3*13/4+1;I3<=min(N1,floord(11*13/4,3));I3++) {
3526       J3 = -(13)-2*(I2)+2*I3 ;
3527       S2++;
3528     }
3529   }
3530   for (I2=4;I2<=12;I2++) {
3531     for (I3=max(max(1,ceild(13-I2,2)),13-2*I2);I3<=13-I2;I3++) {
3532       J3 = 13-(I2)-(I3) ;
3533       S1++;
3534     }
3535     for (I3=max(13-I2+1,ceild(13+2*I2,2));I3<=min(N1,floord(2*13+3*I2,3));I3++) {
3536       J3 = -(13)-2*(I2)+2*I3 ;
3537       S2++;
3538     }
3539   }
3541 for (I1=max(10,ceild(2*N1+3,3));I1<=min(floord(6*N1-4,5),11);I1++) {
3542   for (I2=1;I2<=floord(I1-1,9);I2++) {
3543     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
3544       J3 = -I1-2*(I2)+2*I3 ;
3545       S2++;
3546     }
3547     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
3548       J3 = I1-(I2)-(I3) ;
3549       S1++;
3550     }
3551   }
3552   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
3553     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
3554       J3 = -I1-2*(I2)+2*I3 ;
3555       S2++;
3556     }
3557     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
3558       J3 = I1-(I2)-(I3) ;
3559       S1++;
3560       J3 = -I1-2*(I2)+2*I3 ;
3561       S2++;
3562     }
3563     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
3564       J3 = I1-(I2)-(I3) ;
3565       S1++;
3566     }
3567   }
3568   if (I1%6 == 0) {
3569     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
3570       J3 = -I1-2*(I2)+2*I3 ;
3571       S2++;
3572       J3 = I1-(I2)-(I3) ;
3573       S1++;
3574     }
3575     if (13*I1%18 == 0) {
3576       I3 = 13*I1/18 ;
3577       J1 = -2*I1+3*I3 ;
3578       if ((2*I1+J1)%3 == 0) {
3579         J2 = (2*I1+J1)/3 ;
3580         J3 = 3*I1-4*J2 ;
3581         S1++;
3582         S2++;
3583       }
3584     }
3585     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
3586       J3 = I1-(I2)-(I3) ;
3587       S1++;
3588       J3 = -I1-2*(I2)+2*I3 ;
3589       S2++;
3590     }
3591   }
3592   for (I2=max(ceild(I1+1,6),I1-N1+1);I2<=floord(I1+2,6);I2++) {
3593     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
3594       J3 = I1-(I2)-(I3) ;
3595       S1++;
3596     }
3597     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
3598       J3 = -I1-2*(I2)+2*I3 ;
3599       S2++;
3600       J3 = I1-(I2)-(I3) ;
3601       S1++;
3602     }
3603     if ((2*I1+I2)%3 == 0) {
3604       I3 = (2*I1+I2)/3 ;
3605       J1 = -2*I1+3*I3 ;
3606       if ((2*I1+J1)%3 == 0) {
3607         J2 = (2*I1+J1)/3 ;
3608         J3 = 3*I1-4*J2 ;
3609         S1++;
3610         S2++;
3611       }
3612     }
3613     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
3614       J3 = I1-(I2)-(I3) ;
3615       S1++;
3616       J3 = -I1-2*(I2)+2*I3 ;
3617       S2++;
3618     }
3619   }
3620   if ((I1-1)%4 == 0) {
3621     I2 = (I1-1)/4 ;
3622     for (I3=2*I2+1;I3<=3*I2;I3++) {
3623       J3 = I1-(I2)-(I3) ;
3624       S1++;
3625     }
3626     if ((9*I1-1)%12 == 0) {
3627       I3 = (9*I1-1)/12 ;
3628       J1 = -2*I1+3*I3 ;
3629       if ((2*I1+J1)%3 == 0) {
3630         J2 = (2*I1+J1)/3 ;
3631         J3 = 3*I1-4*J2 ;
3632         S1++;
3633         S2++;
3634       }
3635     }
3636     if ((3*I1+1)%4 == 0) {
3637       I3 = (3*I1+1)/4 ;
3638       J3 = I1-(I2)-(I3) ;
3639       S1++;
3640       J3 = -I1-2*(I2)+2*I3 ;
3641       S2++;
3642     }
3643     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
3644       J3 = -I1-2*(I2)+2*I3 ;
3645       S2++;
3646     }
3647   }
3648   if (I1%4 == 0) {
3649     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
3650       J3 = I1-(I2)-(I3) ;
3651       S1++;
3652     }
3653     if (3*I1%4 == 0) {
3654       I3 = 3*I1/4 ;
3655       J1 = -2*I1+3*I3 ;
3656       if ((2*I1+J1)%3 == 0) {
3657         J2 = (2*I1+J1)/3 ;
3658         J3 = 3*I1-4*J2 ;
3659         S1++;
3660         S2++;
3661       }
3662     }
3663     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
3664       J3 = -I1-2*(I2)+2*I3 ;
3665       S2++;
3666     }
3667   }
3668   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
3669     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
3670       J3 = I1-(I2)-(I3) ;
3671       S1++;
3672     }
3673     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
3674       J3 = -I1-2*(I2)+2*I3 ;
3675       S2++;
3676     }
3677   }
3678   for (I2=ceild(-I1+2*N1+1,2);I2<=min(N1,I1-1);I2++) {
3679     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
3680       J3 = I1-(I2)-(I3) ;
3681       S1++;
3682     }
3683   }
3685 if (N1 == 8) {
3686   for (I3=ceild(10+2*1,2);I3<=min(10-2*(1)-1,floord(2*10+3*1,3));I3++) {
3687     J3 = -(10)-2*(I2)+2*I3 ;
3688     S2++;
3689   }
3690   for (I3=10-2*(1);I3<=min(N1,10-(1));I3++) {
3691     J3 = 10-(I2)-(I3) ;
3692     S1++;
3693   }
3694   if (5%3 == 0) {
3695     for (I3=4*5/3;I3<=floord(13*5/3-1,3);I3++) {
3696       J3 = -(10)-2*(I2)+2*I3 ;
3697       S2++;
3698       J3 = 10-(I2)-(I3) ;
3699       S1++;
3700     }
3701     if (13*10%18 == 0) {
3702       I3 = 13*10/18 ;
3703       J1 = -2*(10)+3*I3 ;
3704       if ((2*10+J1)%3 == 0) {
3705         J2 = (2*10+J1)/3 ;
3706         J3 = 3*10-4*J2 ;
3707         S1++;
3708         S2++;
3709       }
3710     }
3711     for (I3=ceild(13*5/3+1,3);I3<=min(N1,5*5/3);I3++) {
3712       J3 = 10-(I2)-(I3) ;
3713       S1++;
3714       J3 = -(10)-2*(I2)+2*I3 ;
3715       S2++;
3716     }
3717   }
3718   for (I3=10-2*(2);I3<=floord(10+2*2-1,2);I3++) {
3719     J3 = 10-(I2)-(I3) ;
3720     S1++;
3721   }
3722   for (I3=ceild(10+2*2,2);I3<=floord(2*10+2-1,3);I3++) {
3723     J3 = -(10)-2*(I2)+2*I3 ;
3724     S2++;
3725     J3 = 10-(I2)-(I3) ;
3726     S1++;
3727   }
3728   if ((2*10+2)%3 == 0) {
3729     I3 = (2*10+2)/3 ;
3730     J1 = -2*(10)+3*I3 ;
3731     if ((2*10+J1)%3 == 0) {
3732       J2 = (2*10+J1)/3 ;
3733       J3 = 3*10-4*J2 ;
3734       S1++;
3735       S2++;
3736     }
3737   }
3738   for (I3=ceild(2*10+2+1,3);I3<=N1;I3++) {
3739     J3 = 10-(I2)-(I3) ;
3740     S1++;
3741     J3 = -(10)-2*(I2)+2*I3 ;
3742     S2++;
3743   }
3744   for (I3=max(max(1,ceild(10-(3),2)),10-2*(3));I3<=10-(3);I3++) {
3745     J3 = 10-(I2)-(I3) ;
3746     S1++;
3747   }
3748   for (I3=max(10-(3)+1,ceild(10+2*3,2));I3<=min(N1,floord(2*10+3*3,3));I3++) {
3749     J3 = -(10)-2*(I2)+2*I3 ;
3750     S2++;
3751   }
3752   for (I2=4;I2<=8;I2++) {
3753     for (I3=max(max(ceild(10-I2,2),10-2*I2),1);I3<=min(10-I2,N1);I3++) {
3754       J3 = 10-(I2)-(I3) ;
3755       S1++;
3756     }
3757   }
3759 for (I1=max(8,ceild(4*N1-3,3));I1<=floord(6*N1,5);I1++) {
3760   for (I2=1;I2<=floord(I1-1,7);I2++) {
3761     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
3762       J3 = -I1-2*(I2)+2*I3 ;
3763       S2++;
3764     }
3765     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
3766       J3 = I1-(I2)-(I3) ;
3767       S1++;
3768       J3 = -I1-2*(I2)+2*I3 ;
3769       S2++;
3770     }
3771     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
3772       J3 = I1-(I2)-(I3) ;
3773       S1++;
3774     }
3775   }
3776   if (I1%6 == 0) {
3777     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
3778       J3 = -I1-2*(I2)+2*I3 ;
3779       S2++;
3780       J3 = I1-(I2)-(I3) ;
3781       S1++;
3782     }
3783     if (13*I1%18 == 0) {
3784       I3 = 13*I1/18 ;
3785       J1 = -2*I1+3*I3 ;
3786       if ((2*I1+J1)%3 == 0) {
3787         J2 = (2*I1+J1)/3 ;
3788         J3 = 3*I1-4*J2 ;
3789         S1++;
3790         S2++;
3791       }
3792     }
3793     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
3794       J3 = I1-(I2)-(I3) ;
3795       S1++;
3796       J3 = -I1-2*(I2)+2*I3 ;
3797       S2++;
3798     }
3799   }
3800   for (I2=I1-N1+1;I2<=floord(-I1+2*N1,2);I2++) {
3801     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
3802       J3 = I1-(I2)-(I3) ;
3803       S1++;
3804     }
3805     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
3806       J3 = -I1-2*(I2)+2*I3 ;
3807       S2++;
3808     }
3809   }
3810   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
3811     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
3812       J3 = I1-(I2)-(I3) ;
3813       S1++;
3814     }
3815   }
3817 if (N1 == 8) {
3818   for (I3=ceild(11+2*1,2);I3<=min(N1,floord(2*11+3*1,3));I3++) {
3819     J3 = -(11)-2*(I2)+2*I3 ;
3820     S2++;
3821   }
3822   for (I3=ceild(-5*(2)+3*N1,2);I3<=floord(3*2+3*N1-2,4);I3++) {
3823     J3 = 11-(I2)-(I3) ;
3824     S1++;
3825   }
3826   for (I3=ceild(3*2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
3827     J3 = -(11)-2*(I2)+2*I3 ;
3828     S2++;
3829     J3 = 11-(I2)-(I3) ;
3830     S1++;
3831   }
3832   J1 = -2*(11)+3*N1 ;
3833   if ((2*11+J1)%3 == 0) {
3834     J2 = (2*11+J1)/3 ;
3835     J3 = 3*11-4*J2 ;
3836     S1++;
3837     S2++;
3838   }
3839   for (I2=3;I2<=8;I2++) {
3840     for (I3=max(max(ceild(11-I2,2),11-2*I2),1);I3<=min(11-I2,N1);I3++) {
3841       J3 = 11-(I2)-(I3) ;
3842       S1++;
3843     }
3844   }
3846 for (I1=14;I1<=min(19,floord(2*N1,3));I1++) {
3847   for (I2=1;I2<=floord(I1-1,9);I2++) {
3848     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
3849       J3 = -I1-2*(I2)+2*I3 ;
3850       S2++;
3851     }
3852     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
3853       J3 = I1-(I2)-(I3) ;
3854       S1++;
3855     }
3856   }
3857   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
3858     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
3859       J3 = -I1-2*(I2)+2*I3 ;
3860       S2++;
3861     }
3862     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
3863       J3 = I1-(I2)-(I3) ;
3864       S1++;
3865       J3 = -I1-2*(I2)+2*I3 ;
3866       S2++;
3867     }
3868     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
3869       J3 = I1-(I2)-(I3) ;
3870       S1++;
3871     }
3872   }
3873   if (I1%7 == 0) {
3874     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
3875       J3 = -I1-2*(I2)+2*I3 ;
3876       S2++;
3877     }
3878     if (5*I1%7 == 0) {
3879       I3 = 5*I1/7 ;
3880       J1 = -2*I1+3*I3 ;
3881       if ((2*I1+J1)%3 == 0) {
3882         J2 = (2*I1+J1)/3 ;
3883         J3 = 3*I1-4*J2 ;
3884         S1++;
3885         S2++;
3886       }
3887     }
3888     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
3889       J3 = I1-(I2)-(I3) ;
3890       S1++;
3891       J3 = -I1-2*(I2)+2*I3 ;
3892       S2++;
3893     }
3894     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
3895       J3 = I1-(I2)-(I3) ;
3896       S1++;
3897     }
3898   }
3899   if ((I1-1)%6 == 0) {
3900     I2 = (I1-1)/6 ;
3901     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
3902       J3 = -I1-2*(I2)+2*I3 ;
3903       S2++;
3904       J3 = I1-(I2)-(I3) ;
3905       S1++;
3906     }
3907     if ((13*I1-1)%18 == 0) {
3908       I3 = (13*I1-1)/18 ;
3909       J1 = -2*I1+3*I3 ;
3910       if ((2*I1+J1)%3 == 0) {
3911         J2 = (2*I1+J1)/3 ;
3912         J3 = 3*I1-4*J2 ;
3913         S1++;
3914         S2++;
3915       }
3916     }
3917     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
3918       J3 = I1-(I2)-(I3) ;
3919       S1++;
3920       J3 = -I1-2*(I2)+2*I3 ;
3921       S2++;
3922     }
3923     if ((5*I1+1)%6 == 0) {
3924       I3 = (5*I1+1)/6 ;
3925       J3 = I1-(I2)-(I3) ;
3926       S1++;
3927     }
3928   }
3929   if (I1%6 == 0) {
3930     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
3931       J3 = -I1-2*(I2)+2*I3 ;
3932       S2++;
3933       J3 = I1-(I2)-(I3) ;
3934       S1++;
3935     }
3936     if (13*I1%18 == 0) {
3937       I3 = 13*I1/18 ;
3938       J1 = -2*I1+3*I3 ;
3939       if ((2*I1+J1)%3 == 0) {
3940         J2 = (2*I1+J1)/3 ;
3941         J3 = 3*I1-4*J2 ;
3942         S1++;
3943         S2++;
3944       }
3945     }
3946     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
3947       J3 = I1-(I2)-(I3) ;
3948       S1++;
3949       J3 = -I1-2*(I2)+2*I3 ;
3950       S2++;
3951     }
3952   }
3953   for (I2=ceild(I1+1,6);I2<=floord(I1+2,6);I2++) {
3954     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
3955       J3 = I1-(I2)-(I3) ;
3956       S1++;
3957     }
3958     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
3959       J3 = -I1-2*(I2)+2*I3 ;
3960       S2++;
3961       J3 = I1-(I2)-(I3) ;
3962       S1++;
3963     }
3964     if ((2*I1+I2)%3 == 0) {
3965       I3 = (2*I1+I2)/3 ;
3966       J1 = -2*I1+3*I3 ;
3967       if ((2*I1+J1)%3 == 0) {
3968         J2 = (2*I1+J1)/3 ;
3969         J3 = 3*I1-4*J2 ;
3970         S1++;
3971         S2++;
3972       }
3973     }
3974     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
3975       J3 = I1-(I2)-(I3) ;
3976       S1++;
3977       J3 = -I1-2*(I2)+2*I3 ;
3978       S2++;
3979     }
3980   }
3981   for (I2=ceild(I1+3,6);I2<=floord(I1-2,4);I2++) {
3982     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
3983       J3 = I1-(I2)-(I3) ;
3984       S1++;
3985     }
3986     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
3987       J3 = -I1-2*(I2)+2*I3 ;
3988       S2++;
3989       J3 = I1-(I2)-(I3) ;
3990       S1++;
3991     }
3992     if ((2*I1+I2)%3 == 0) {
3993       I3 = (2*I1+I2)/3 ;
3994       J1 = -2*I1+3*I3 ;
3995       if ((2*I1+J1)%3 == 0) {
3996         J2 = (2*I1+J1)/3 ;
3997         J3 = 3*I1-4*J2 ;
3998         S1++;
3999         S2++;
4000       }
4001     }
4002     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
4003       J3 = I1-(I2)-(I3) ;
4004       S1++;
4005       J3 = -I1-2*(I2)+2*I3 ;
4006       S2++;
4007     }
4008     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4009       J3 = -I1-2*(I2)+2*I3 ;
4010       S2++;
4011     }
4012   }
4013   if ((I1-1)%4 == 0) {
4014     I2 = (I1-1)/4 ;
4015     for (I3=2*I2+1;I3<=3*I2;I3++) {
4016       J3 = I1-(I2)-(I3) ;
4017       S1++;
4018     }
4019     if ((9*I1-1)%12 == 0) {
4020       I3 = (9*I1-1)/12 ;
4021       J1 = -2*I1+3*I3 ;
4022       if ((2*I1+J1)%3 == 0) {
4023         J2 = (2*I1+J1)/3 ;
4024         J3 = 3*I1-4*J2 ;
4025         S1++;
4026         S2++;
4027       }
4028     }
4029     if ((3*I1+1)%4 == 0) {
4030       I3 = (3*I1+1)/4 ;
4031       J3 = I1-(I2)-(I3) ;
4032       S1++;
4033       J3 = -I1-2*(I2)+2*I3 ;
4034       S2++;
4035     }
4036     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
4037       J3 = -I1-2*(I2)+2*I3 ;
4038       S2++;
4039     }
4040   }
4041   if (I1%4 == 0) {
4042     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
4043       J3 = I1-(I2)-(I3) ;
4044       S1++;
4045     }
4046     if (3*I1%4 == 0) {
4047       I3 = 3*I1/4 ;
4048       J1 = -2*I1+3*I3 ;
4049       if ((2*I1+J1)%3 == 0) {
4050         J2 = (2*I1+J1)/3 ;
4051         J3 = 3*I1-4*J2 ;
4052         S1++;
4053         S2++;
4054       }
4055     }
4056     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
4057       J3 = -I1-2*(I2)+2*I3 ;
4058       S2++;
4059     }
4060   }
4061   for (I2=ceild(I1+1,4);I2<=I1-1;I2++) {
4062     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
4063       J3 = I1-(I2)-(I3) ;
4064       S1++;
4065     }
4066     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4067       J3 = -I1-2*(I2)+2*I3 ;
4068       S2++;
4069     }
4070   }
4071   for (I2=I1;I2<=floord(-I1+2*N1,2);I2++) {
4072     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4073       J3 = -I1-2*(I2)+2*I3 ;
4074       S2++;
4075     }
4076   }
4078 if ((N1 <= 16) && (N1 >= 11)) {
4079   for (I3=ceild(12+2*1,2);I3<=min(12-2*(1)-1,floord(2*12+3*1,3));I3++) {
4080     J3 = -(12)-2*(I2)+2*I3 ;
4081     S2++;
4082   }
4083   for (I3=12-2*(1);I3<=min(N1,12-(1));I3++) {
4084     J3 = 12-(I2)-(I3) ;
4085     S1++;
4086   }
4087   for (I2=2;I2<=1;I2++) {
4088     for (I3=ceild(12+2*I2,2);I3<=12-2*I2-1;I3++) {
4089       J3 = -(12)-2*(I2)+2*I3 ;
4090       S2++;
4091     }
4092     for (I3=12-2*I2;I3<=floord(2*12+3*I2,3);I3++) {
4093       J3 = 12-(I2)-(I3) ;
4094       S1++;
4095       J3 = -(12)-2*(I2)+2*I3 ;
4096       S2++;
4097     }
4098     for (I3=ceild(2*12+3*I2+1,3);I3<=min(N1,12-I2);I3++) {
4099       J3 = 12-(I2)-(I3) ;
4100       S1++;
4101     }
4102   }
4103   for (I3=4*2;I3<=floord(13*2-1,3);I3++) {
4104     J3 = -(12)-2*(I2)+2*I3 ;
4105     S2++;
4106     J3 = 12-(I2)-(I3) ;
4107     S1++;
4108   }
4109   if (13*12%18 == 0) {
4110     I3 = 13*12/18 ;
4111     J1 = -2*(12)+3*I3 ;
4112     if ((2*12+J1)%3 == 0) {
4113       J2 = (2*12+J1)/3 ;
4114       J3 = 3*12-4*J2 ;
4115       S1++;
4116       S2++;
4117     }
4118   }
4119   for (I3=ceild(13*2+1,3);I3<=min(N1,5*2);I3++) {
4120     J3 = 12-(I2)-(I3) ;
4121     S1++;
4122     J3 = -(12)-2*(I2)+2*I3 ;
4123     S2++;
4124   }
4125   for (I2=max(3,-N1+13);I2<=2;I2++) {
4126     for (I3=12-2*I2;I3<=floord(12+2*I2-1,2);I3++) {
4127       J3 = 12-(I2)-(I3) ;
4128       S1++;
4129     }
4130     for (I3=ceild(12+2*I2,2);I3<=floord(2*12+I2-1,3);I3++) {
4131       J3 = -(12)-2*(I2)+2*I3 ;
4132       S2++;
4133       J3 = 12-(I2)-(I3) ;
4134       S1++;
4135     }
4136     if ((2*12+I2)%3 == 0) {
4137       I3 = (2*12+I2)/3 ;
4138       J1 = -2*(12)+3*I3 ;
4139       if ((2*12+J1)%3 == 0) {
4140         J2 = (2*12+J1)/3 ;
4141         J3 = 3*12-4*J2 ;
4142         S1++;
4143         S2++;
4144       }
4145     }
4146     for (I3=ceild(2*12+I2+1,3);I3<=12-I2;I3++) {
4147       J3 = 12-(I2)-(I3) ;
4148       S1++;
4149       J3 = -(12)-2*(I2)+2*I3 ;
4150       S2++;
4151     }
4152   }
4153   if (5%2 == 0) {
4154     for (I3=12-2*(5/2);I3<=floord(12+2*5/2-1,2);I3++) {
4155       J3 = 12-(I2)-(I3) ;
4156       S1++;
4157     }
4158     for (I3=ceild(12+2*5/2,2);I3<=floord(2*12+5/2-1,3);I3++) {
4159       J3 = -(12)-2*(I2)+2*I3 ;
4160       S2++;
4161       J3 = 12-(I2)-(I3) ;
4162       S1++;
4163     }
4164     if ((2*12+5/2)%3 == 0) {
4165       I3 = (2*12+5/2)/3 ;
4166       J1 = -2*(12)+3*I3 ;
4167       if ((2*12+J1)%3 == 0) {
4168         J2 = (2*12+J1)/3 ;
4169         J3 = 3*12-4*J2 ;
4170         S1++;
4171         S2++;
4172       }
4173     }
4174     for (I3=ceild(2*12+5/2+1,3);I3<=12-(5/2);I3++) {
4175       J3 = 12-(I2)-(I3) ;
4176       S1++;
4177       J3 = -(12)-2*(I2)+2*I3 ;
4178       S2++;
4179     }
4180     for (I3=12-(5/2)+1;I3<=min(N1,floord(2*12+3*5/2,3));I3++) {
4181       J3 = -(12)-2*(I2)+2*I3 ;
4182       S2++;
4183     }
4184   }
4185   if (11%4 == 0) {
4186     for (I3=2*11/4+1;I3<=3*11/4;I3++) {
4187       J3 = 12-(I2)-(I3) ;
4188       S1++;
4189     }
4190     if ((9*12-1)%12 == 0) {
4191       I3 = (9*12-1)/12 ;
4192       J1 = -2*(12)+3*I3 ;
4193       if ((2*12+J1)%3 == 0) {
4194         J2 = (2*12+J1)/3 ;
4195         J3 = 3*12-4*J2 ;
4196         S1++;
4197         S2++;
4198       }
4199     }
4200     if ((3*12+1)%4 == 0) {
4201       I3 = (3*12+1)/4 ;
4202       J3 = 12-(I2)-(I3) ;
4203       S1++;
4204       J3 = -(12)-2*(I2)+2*I3 ;
4205       S2++;
4206     }
4207     for (I3=3*11/4+2;I3<=min(N1,floord(11*11/4+2,3));I3++) {
4208       J3 = -(12)-2*(I2)+2*I3 ;
4209       S2++;
4210     }
4211   }
4212   for (I3=2*3;I3<=floord(6*3-1,2);I3++) {
4213     J3 = 12-(I2)-(I3) ;
4214     S1++;
4215   }
4216   if (3*12%4 == 0) {
4217     I3 = 3*12/4 ;
4218     J1 = -2*(12)+3*I3 ;
4219     if ((2*12+J1)%3 == 0) {
4220       J2 = (2*12+J1)/3 ;
4221       J3 = 3*12-4*J2 ;
4222       S1++;
4223       S2++;
4224     }
4225   }
4226   for (I3=3*3+1;I3<=min(N1,floord(11*3,3));I3++) {
4227     J3 = -(12)-2*(I2)+2*I3 ;
4228     S2++;
4229   }
4230   for (I2=4;I2<=N1-6;I2++) {
4231     for (I3=max(max(1,ceild(12-I2,2)),12-2*I2);I3<=12-I2;I3++) {
4232       J3 = 12-(I2)-(I3) ;
4233       S1++;
4234     }
4235     for (I3=max(12-I2+1,ceild(12+2*I2,2));I3<=min(N1,floord(2*12+3*I2,3));I3++) {
4236       J3 = -(12)-2*(I2)+2*I3 ;
4237       S2++;
4238     }
4239   }
4240   for (I2=ceild(2*N1-11,2);I2<=min(N1,11);I2++) {
4241     for (I3=max(max(ceild(12-I2,2),12-2*I2),1);I3<=min(12-I2,N1);I3++) {
4242       J3 = 12-(I2)-(I3) ;
4243       S1++;
4244     }
4245   }
4247 for (I1=max(max(10,ceild(12*N1-39,7)),ceild(6*N1-3,5));I1<=floord(4*N1-5,3);I1++) {
4248   for (I2=1;I2<=floord(I1-1,9);I2++) {
4249     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
4250       J3 = -I1-2*(I2)+2*I3 ;
4251       S2++;
4252     }
4253     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
4254       J3 = I1-(I2)-(I3) ;
4255       S1++;
4256     }
4257   }
4258   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
4259     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
4260       J3 = -I1-2*(I2)+2*I3 ;
4261       S2++;
4262     }
4263     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
4264       J3 = I1-(I2)-(I3) ;
4265       S1++;
4266       J3 = -I1-2*(I2)+2*I3 ;
4267       S2++;
4268     }
4269     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
4270       J3 = I1-(I2)-(I3) ;
4271       S1++;
4272     }
4273   }
4274   if (I1%6 == 0) {
4275     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
4276       J3 = -I1-2*(I2)+2*I3 ;
4277       S2++;
4278       J3 = I1-(I2)-(I3) ;
4279       S1++;
4280     }
4281     if (13*I1%18 == 0) {
4282       I3 = 13*I1/18 ;
4283       J1 = -2*I1+3*I3 ;
4284       if ((2*I1+J1)%3 == 0) {
4285         J2 = (2*I1+J1)/3 ;
4286         J3 = 3*I1-4*J2 ;
4287         S1++;
4288         S2++;
4289       }
4290     }
4291     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
4292       J3 = I1-(I2)-(I3) ;
4293       S1++;
4294       J3 = -I1-2*(I2)+2*I3 ;
4295       S2++;
4296     }
4297   }
4298   if ((I1-1)%4 == 0) {
4299     I2 = (I1-1)/4 ;
4300     for (I3=2*I2+1;I3<=3*I2;I3++) {
4301       J3 = I1-(I2)-(I3) ;
4302       S1++;
4303     }
4304     if ((9*I1-1)%12 == 0) {
4305       I3 = (9*I1-1)/12 ;
4306       J1 = -2*I1+3*I3 ;
4307       if ((2*I1+J1)%3 == 0) {
4308         J2 = (2*I1+J1)/3 ;
4309         J3 = 3*I1-4*J2 ;
4310         S1++;
4311         S2++;
4312       }
4313     }
4314     if ((3*I1+1)%4 == 0) {
4315       I3 = (3*I1+1)/4 ;
4316       J3 = I1-(I2)-(I3) ;
4317       S1++;
4318       J3 = -I1-2*(I2)+2*I3 ;
4319       S2++;
4320     }
4321     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
4322       J3 = -I1-2*(I2)+2*I3 ;
4323       S2++;
4324     }
4325   }
4326   if (I1%4 == 0) {
4327     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
4328       J3 = I1-(I2)-(I3) ;
4329       S1++;
4330     }
4331     if (3*I1%4 == 0) {
4332       I3 = 3*I1/4 ;
4333       J1 = -2*I1+3*I3 ;
4334       if ((2*I1+J1)%3 == 0) {
4335         J2 = (2*I1+J1)/3 ;
4336         J3 = 3*I1-4*J2 ;
4337         S1++;
4338         S2++;
4339       }
4340     }
4341     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
4342       J3 = -I1-2*(I2)+2*I3 ;
4343       S2++;
4344     }
4345   }
4346   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
4347     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
4348       J3 = I1-(I2)-(I3) ;
4349       S1++;
4350     }
4351     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4352       J3 = -I1-2*(I2)+2*I3 ;
4353       S2++;
4354     }
4355   }
4356   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
4357     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
4358       J3 = I1-(I2)-(I3) ;
4359       S1++;
4360     }
4361   }
4363 if ((N1 <= 7) && (N1 >= 7)) {
4364   if ((4*N1-1)%3 == 0) {
4365     I1 = (4*N1-1)/3 ;
4366     for (I2=1;I2<=floord(4*N1-4,21);I2++) {
4367       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
4368         J3 = -I1-2*(I2)+2*I3 ;
4369         S2++;
4370       }
4371       for (I3=I1-2*I2;I3<=N1;I3++) {
4372         J3 = I1-(I2)-(I3) ;
4373         S1++;
4374         J3 = -I1-2*(I2)+2*I3 ;
4375         S2++;
4376       }
4377     }
4378     if ((4*N1-1)%18 == 0) {
4379       I2 = (4*N1-1)/18 ;
4380       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
4381         J3 = -I1-2*(I2)+2*I3 ;
4382         S2++;
4383         J3 = I1-(I2)-(I3) ;
4384         S1++;
4385       }
4386       if (13*I1%18 == 0) {
4387         I3 = 13*I1/18 ;
4388         J1 = -2*I1+3*I3 ;
4389         if ((2*I1+J1)%3 == 0) {
4390           J2 = (2*I1+J1)/3 ;
4391           J3 = 3*I1-4*J2 ;
4392           S1++;
4393           S2++;
4394         }
4395       }
4396       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
4397         J3 = I1-(I2)-(I3) ;
4398         S1++;
4399         J3 = -I1-2*(I2)+2*I3 ;
4400         S2++;
4401       }
4402     }
4403     for (I2=ceild(2*N1+1,9);I2<=floord(4*N1-7,12);I2++) {
4404       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
4405         J3 = I1-(I2)-(I3) ;
4406         S1++;
4407       }
4408       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
4409         J3 = -I1-2*(I2)+2*I3 ;
4410         S2++;
4411         J3 = I1-(I2)-(I3) ;
4412         S1++;
4413       }
4414       if ((2*I1+I2)%3 == 0) {
4415         I3 = (2*I1+I2)/3 ;
4416         J1 = -2*I1+3*I3 ;
4417         if ((2*I1+J1)%3 == 0) {
4418           J2 = (2*I1+J1)/3 ;
4419           J3 = 3*I1-4*J2 ;
4420           S1++;
4421           S2++;
4422         }
4423       }
4424       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
4425         J3 = I1-(I2)-(I3) ;
4426         S1++;
4427         J3 = -I1-2*(I2)+2*I3 ;
4428         S2++;
4429       }
4430     }
4431     if ((N1-1)%3 == 0) {
4432       I2 = (N1-1)/3 ;
4433       for (I3=ceild(2*N1+1,3);I3<=N1-1;I3++) {
4434         J3 = I1-(I2)-(I3) ;
4435         S1++;
4436       }
4437       if (-1%3 == 0) {
4438         I3 = (3*N1-1)/3 ;
4439         J1 = -2*I1+3*I3 ;
4440         if ((2*I1+J1)%3 == 0) {
4441           J2 = (2*I1+J1)/3 ;
4442           J3 = 3*I1-4*J2 ;
4443           S1++;
4444           S2++;
4445         }
4446       }
4447       J3 = I1-(I2)-(I3) ;
4448       S1++;
4449       J3 = -I1-2*(I2)+2*I3 ;
4450       S2++;
4451     }
4452     for (I2=ceild(N1+2,3);I2<=N1;I2++) {
4453       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
4454         J3 = I1-(I2)-(I3) ;
4455         S1++;
4456       }
4457     }
4458   }
4460 for (I1=max(N1+3,ceild(3*N1-1,2));I1<=floord(18*N1+5,13);I1++) {
4461   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
4462     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4463       J3 = -I1-2*(I2)+2*I3 ;
4464       S2++;
4465     }
4466   }
4467   for (I2=-2*I1+3*N1+1;I2<=floord(-I1+2*N1,2);I2++) {
4468     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
4469       J3 = I1-(I2)-(I3) ;
4470       S1++;
4471     }
4472     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
4473       J3 = -I1-2*(I2)+2*I3 ;
4474       S2++;
4475       J3 = I1-(I2)-(I3) ;
4476       S1++;
4477     }
4478   }
4479   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
4480     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
4481       J3 = I1-(I2)-(I3) ;
4482       S1++;
4483     }
4484   }
4486 for (I1=20;I1<=floord(2*N1,3);I1++) {
4487   for (I2=1;I2<=floord(I1-1,9);I2++) {
4488     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
4489       J3 = -I1-2*(I2)+2*I3 ;
4490       S2++;
4491     }
4492     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
4493       J3 = I1-(I2)-(I3) ;
4494       S1++;
4495     }
4496   }
4497   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
4498     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
4499       J3 = -I1-2*(I2)+2*I3 ;
4500       S2++;
4501     }
4502     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
4503       J3 = I1-(I2)-(I3) ;
4504       S1++;
4505       J3 = -I1-2*(I2)+2*I3 ;
4506       S2++;
4507     }
4508     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
4509       J3 = I1-(I2)-(I3) ;
4510       S1++;
4511     }
4512   }
4513   if (I1%7 == 0) {
4514     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
4515       J3 = -I1-2*(I2)+2*I3 ;
4516       S2++;
4517     }
4518     if (5*I1%7 == 0) {
4519       I3 = 5*I1/7 ;
4520       J1 = -2*I1+3*I3 ;
4521       if ((2*I1+J1)%3 == 0) {
4522         J2 = (2*I1+J1)/3 ;
4523         J3 = 3*I1-4*J2 ;
4524         S1++;
4525         S2++;
4526       }
4527     }
4528     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
4529       J3 = I1-(I2)-(I3) ;
4530       S1++;
4531       J3 = -I1-2*(I2)+2*I3 ;
4532       S2++;
4533     }
4534     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
4535       J3 = I1-(I2)-(I3) ;
4536       S1++;
4537     }
4538   }
4539   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
4540     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
4541       J3 = -I1-2*(I2)+2*I3 ;
4542       S2++;
4543     }
4544     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
4545       J3 = -I1-2*(I2)+2*I3 ;
4546       S2++;
4547       J3 = I1-(I2)-(I3) ;
4548       S1++;
4549     }
4550     if ((2*I1+I2)%3 == 0) {
4551       I3 = (2*I1+I2)/3 ;
4552       J1 = -2*I1+3*I3 ;
4553       if ((2*I1+J1)%3 == 0) {
4554         J2 = (2*I1+J1)/3 ;
4555         J3 = 3*I1-4*J2 ;
4556         S1++;
4557         S2++;
4558       }
4559     }
4560     for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
4561       J3 = I1-(I2)-(I3) ;
4562       S1++;
4563       J3 = -I1-2*(I2)+2*I3 ;
4564       S2++;
4565     }
4566     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
4567       J3 = I1-(I2)-(I3) ;
4568       S1++;
4569     }
4570   }
4571   if ((I1-1)%6 == 0) {
4572     I2 = (I1-1)/6 ;
4573     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
4574       J3 = -I1-2*(I2)+2*I3 ;
4575       S2++;
4576       J3 = I1-(I2)-(I3) ;
4577       S1++;
4578     }
4579     if ((13*I1-1)%18 == 0) {
4580       I3 = (13*I1-1)/18 ;
4581       J1 = -2*I1+3*I3 ;
4582       if ((2*I1+J1)%3 == 0) {
4583         J2 = (2*I1+J1)/3 ;
4584         J3 = 3*I1-4*J2 ;
4585         S1++;
4586         S2++;
4587       }
4588     }
4589     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
4590       J3 = I1-(I2)-(I3) ;
4591       S1++;
4592       J3 = -I1-2*(I2)+2*I3 ;
4593       S2++;
4594     }
4595     if ((5*I1+1)%6 == 0) {
4596       I3 = (5*I1+1)/6 ;
4597       J3 = I1-(I2)-(I3) ;
4598       S1++;
4599     }
4600   }
4601   if (I1%6 == 0) {
4602     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
4603       J3 = -I1-2*(I2)+2*I3 ;
4604       S2++;
4605       J3 = I1-(I2)-(I3) ;
4606       S1++;
4607     }
4608     if (13*I1%18 == 0) {
4609       I3 = 13*I1/18 ;
4610       J1 = -2*I1+3*I3 ;
4611       if ((2*I1+J1)%3 == 0) {
4612         J2 = (2*I1+J1)/3 ;
4613         J3 = 3*I1-4*J2 ;
4614         S1++;
4615         S2++;
4616       }
4617     }
4618     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
4619       J3 = I1-(I2)-(I3) ;
4620       S1++;
4621       J3 = -I1-2*(I2)+2*I3 ;
4622       S2++;
4623     }
4624   }
4625   for (I2=ceild(I1+1,6);I2<=floord(I1+2,6);I2++) {
4626     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
4627       J3 = I1-(I2)-(I3) ;
4628       S1++;
4629     }
4630     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
4631       J3 = -I1-2*(I2)+2*I3 ;
4632       S2++;
4633       J3 = I1-(I2)-(I3) ;
4634       S1++;
4635     }
4636     if ((2*I1+I2)%3 == 0) {
4637       I3 = (2*I1+I2)/3 ;
4638       J1 = -2*I1+3*I3 ;
4639       if ((2*I1+J1)%3 == 0) {
4640         J2 = (2*I1+J1)/3 ;
4641         J3 = 3*I1-4*J2 ;
4642         S1++;
4643         S2++;
4644       }
4645     }
4646     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
4647       J3 = I1-(I2)-(I3) ;
4648       S1++;
4649       J3 = -I1-2*(I2)+2*I3 ;
4650       S2++;
4651     }
4652   }
4653   for (I2=ceild(I1+3,6);I2<=floord(I1-2,4);I2++) {
4654     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
4655       J3 = I1-(I2)-(I3) ;
4656       S1++;
4657     }
4658     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
4659       J3 = -I1-2*(I2)+2*I3 ;
4660       S2++;
4661       J3 = I1-(I2)-(I3) ;
4662       S1++;
4663     }
4664     if ((2*I1+I2)%3 == 0) {
4665       I3 = (2*I1+I2)/3 ;
4666       J1 = -2*I1+3*I3 ;
4667       if ((2*I1+J1)%3 == 0) {
4668         J2 = (2*I1+J1)/3 ;
4669         J3 = 3*I1-4*J2 ;
4670         S1++;
4671         S2++;
4672       }
4673     }
4674     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
4675       J3 = I1-(I2)-(I3) ;
4676       S1++;
4677       J3 = -I1-2*(I2)+2*I3 ;
4678       S2++;
4679     }
4680     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4681       J3 = -I1-2*(I2)+2*I3 ;
4682       S2++;
4683     }
4684   }
4685   if ((I1-1)%4 == 0) {
4686     I2 = (I1-1)/4 ;
4687     for (I3=2*I2+1;I3<=3*I2;I3++) {
4688       J3 = I1-(I2)-(I3) ;
4689       S1++;
4690     }
4691     if ((9*I1-1)%12 == 0) {
4692       I3 = (9*I1-1)/12 ;
4693       J1 = -2*I1+3*I3 ;
4694       if ((2*I1+J1)%3 == 0) {
4695         J2 = (2*I1+J1)/3 ;
4696         J3 = 3*I1-4*J2 ;
4697         S1++;
4698         S2++;
4699       }
4700     }
4701     if ((3*I1+1)%4 == 0) {
4702       I3 = (3*I1+1)/4 ;
4703       J3 = I1-(I2)-(I3) ;
4704       S1++;
4705       J3 = -I1-2*(I2)+2*I3 ;
4706       S2++;
4707     }
4708     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
4709       J3 = -I1-2*(I2)+2*I3 ;
4710       S2++;
4711     }
4712   }
4713   if (I1%4 == 0) {
4714     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
4715       J3 = I1-(I2)-(I3) ;
4716       S1++;
4717     }
4718     if (3*I1%4 == 0) {
4719       I3 = 3*I1/4 ;
4720       J1 = -2*I1+3*I3 ;
4721       if ((2*I1+J1)%3 == 0) {
4722         J2 = (2*I1+J1)/3 ;
4723         J3 = 3*I1-4*J2 ;
4724         S1++;
4725         S2++;
4726       }
4727     }
4728     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
4729       J3 = -I1-2*(I2)+2*I3 ;
4730       S2++;
4731     }
4732   }
4733   for (I2=ceild(I1+1,4);I2<=I1-1;I2++) {
4734     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
4735       J3 = I1-(I2)-(I3) ;
4736       S1++;
4737     }
4738     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4739       J3 = -I1-2*(I2)+2*I3 ;
4740       S2++;
4741     }
4742   }
4743   for (I2=I1;I2<=floord(-I1+2*N1,2);I2++) {
4744     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4745       J3 = -I1-2*(I2)+2*I3 ;
4746       S2++;
4747     }
4748   }
4750 for (I1=max(14,ceild(2*N1+1,3));I1<=min(19,floord(2*N1+2,3));I1++) {
4751   for (I2=1;I2<=floord(I1-1,9);I2++) {
4752     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
4753       J3 = -I1-2*(I2)+2*I3 ;
4754       S2++;
4755     }
4756     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
4757       J3 = I1-(I2)-(I3) ;
4758       S1++;
4759     }
4760   }
4761   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
4762     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
4763       J3 = -I1-2*(I2)+2*I3 ;
4764       S2++;
4765     }
4766     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
4767       J3 = I1-(I2)-(I3) ;
4768       S1++;
4769       J3 = -I1-2*(I2)+2*I3 ;
4770       S2++;
4771     }
4772     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
4773       J3 = I1-(I2)-(I3) ;
4774       S1++;
4775     }
4776   }
4777   if (I1%7 == 0) {
4778     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
4779       J3 = -I1-2*(I2)+2*I3 ;
4780       S2++;
4781     }
4782     if (5*I1%7 == 0) {
4783       I3 = 5*I1/7 ;
4784       J1 = -2*I1+3*I3 ;
4785       if ((2*I1+J1)%3 == 0) {
4786         J2 = (2*I1+J1)/3 ;
4787         J3 = 3*I1-4*J2 ;
4788         S1++;
4789         S2++;
4790       }
4791     }
4792     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
4793       J3 = I1-(I2)-(I3) ;
4794       S1++;
4795       J3 = -I1-2*(I2)+2*I3 ;
4796       S2++;
4797     }
4798     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
4799       J3 = I1-(I2)-(I3) ;
4800       S1++;
4801     }
4802   }
4803   if ((I1-1)%6 == 0) {
4804     I2 = (I1-1)/6 ;
4805     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
4806       J3 = -I1-2*(I2)+2*I3 ;
4807       S2++;
4808       J3 = I1-(I2)-(I3) ;
4809       S1++;
4810     }
4811     if ((13*I1-1)%18 == 0) {
4812       I3 = (13*I1-1)/18 ;
4813       J1 = -2*I1+3*I3 ;
4814       if ((2*I1+J1)%3 == 0) {
4815         J2 = (2*I1+J1)/3 ;
4816         J3 = 3*I1-4*J2 ;
4817         S1++;
4818         S2++;
4819       }
4820     }
4821     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
4822       J3 = I1-(I2)-(I3) ;
4823       S1++;
4824       J3 = -I1-2*(I2)+2*I3 ;
4825       S2++;
4826     }
4827     if ((5*I1+1)%6 == 0) {
4828       I3 = (5*I1+1)/6 ;
4829       J3 = I1-(I2)-(I3) ;
4830       S1++;
4831     }
4832   }
4833   if (I1%6 == 0) {
4834     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
4835       J3 = -I1-2*(I2)+2*I3 ;
4836       S2++;
4837       J3 = I1-(I2)-(I3) ;
4838       S1++;
4839     }
4840     if (13*I1%18 == 0) {
4841       I3 = 13*I1/18 ;
4842       J1 = -2*I1+3*I3 ;
4843       if ((2*I1+J1)%3 == 0) {
4844         J2 = (2*I1+J1)/3 ;
4845         J3 = 3*I1-4*J2 ;
4846         S1++;
4847         S2++;
4848       }
4849     }
4850     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
4851       J3 = I1-(I2)-(I3) ;
4852       S1++;
4853       J3 = -I1-2*(I2)+2*I3 ;
4854       S2++;
4855     }
4856   }
4857   for (I2=ceild(I1+1,6);I2<=floord(I1+2,6);I2++) {
4858     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
4859       J3 = I1-(I2)-(I3) ;
4860       S1++;
4861     }
4862     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
4863       J3 = -I1-2*(I2)+2*I3 ;
4864       S2++;
4865       J3 = I1-(I2)-(I3) ;
4866       S1++;
4867     }
4868     if ((2*I1+I2)%3 == 0) {
4869       I3 = (2*I1+I2)/3 ;
4870       J1 = -2*I1+3*I3 ;
4871       if ((2*I1+J1)%3 == 0) {
4872         J2 = (2*I1+J1)/3 ;
4873         J3 = 3*I1-4*J2 ;
4874         S1++;
4875         S2++;
4876       }
4877     }
4878     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
4879       J3 = I1-(I2)-(I3) ;
4880       S1++;
4881       J3 = -I1-2*(I2)+2*I3 ;
4882       S2++;
4883     }
4884   }
4885   for (I2=ceild(I1+3,6);I2<=floord(I1-2,4);I2++) {
4886     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
4887       J3 = I1-(I2)-(I3) ;
4888       S1++;
4889     }
4890     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
4891       J3 = -I1-2*(I2)+2*I3 ;
4892       S2++;
4893       J3 = I1-(I2)-(I3) ;
4894       S1++;
4895     }
4896     if ((2*I1+I2)%3 == 0) {
4897       I3 = (2*I1+I2)/3 ;
4898       J1 = -2*I1+3*I3 ;
4899       if ((2*I1+J1)%3 == 0) {
4900         J2 = (2*I1+J1)/3 ;
4901         J3 = 3*I1-4*J2 ;
4902         S1++;
4903         S2++;
4904       }
4905     }
4906     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
4907       J3 = I1-(I2)-(I3) ;
4908       S1++;
4909       J3 = -I1-2*(I2)+2*I3 ;
4910       S2++;
4911     }
4912     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4913       J3 = -I1-2*(I2)+2*I3 ;
4914       S2++;
4915     }
4916   }
4917   if ((I1-1)%4 == 0) {
4918     I2 = (I1-1)/4 ;
4919     for (I3=2*I2+1;I3<=3*I2;I3++) {
4920       J3 = I1-(I2)-(I3) ;
4921       S1++;
4922     }
4923     if ((9*I1-1)%12 == 0) {
4924       I3 = (9*I1-1)/12 ;
4925       J1 = -2*I1+3*I3 ;
4926       if ((2*I1+J1)%3 == 0) {
4927         J2 = (2*I1+J1)/3 ;
4928         J3 = 3*I1-4*J2 ;
4929         S1++;
4930         S2++;
4931       }
4932     }
4933     if ((3*I1+1)%4 == 0) {
4934       I3 = (3*I1+1)/4 ;
4935       J3 = I1-(I2)-(I3) ;
4936       S1++;
4937       J3 = -I1-2*(I2)+2*I3 ;
4938       S2++;
4939     }
4940     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
4941       J3 = -I1-2*(I2)+2*I3 ;
4942       S2++;
4943     }
4944   }
4945   if (I1%4 == 0) {
4946     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
4947       J3 = I1-(I2)-(I3) ;
4948       S1++;
4949     }
4950     if (3*I1%4 == 0) {
4951       I3 = 3*I1/4 ;
4952       J1 = -2*I1+3*I3 ;
4953       if ((2*I1+J1)%3 == 0) {
4954         J2 = (2*I1+J1)/3 ;
4955         J3 = 3*I1-4*J2 ;
4956         S1++;
4957         S2++;
4958       }
4959     }
4960     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
4961       J3 = -I1-2*(I2)+2*I3 ;
4962       S2++;
4963     }
4964   }
4965   for (I2=ceild(I1+1,4);I2<=I1-1;I2++) {
4966     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
4967       J3 = I1-(I2)-(I3) ;
4968       S1++;
4969     }
4970     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
4971       J3 = -I1-2*(I2)+2*I3 ;
4972       S2++;
4973     }
4974   }
4976 if ((N1 <= 18) && (N1 >= 12)) {
4977   for (I3=ceild(13+2*1,2);I3<=min(13-2*(1)-1,floord(2*13+3*1,3));I3++) {
4978     J3 = -(13)-2*(I2)+2*I3 ;
4979     S2++;
4980   }
4981   for (I3=13-2*(1);I3<=min(N1,13-(1));I3++) {
4982     J3 = 13-(I2)-(I3) ;
4983     S1++;
4984   }
4985   for (I2=2;I2<=1;I2++) {
4986     for (I3=ceild(13+2*I2,2);I3<=13-2*I2-1;I3++) {
4987       J3 = -(13)-2*(I2)+2*I3 ;
4988       S2++;
4989     }
4990     for (I3=13-2*I2;I3<=floord(2*13+3*I2,3);I3++) {
4991       J3 = 13-(I2)-(I3) ;
4992       S1++;
4993       J3 = -(13)-2*(I2)+2*I3 ;
4994       S2++;
4995     }
4996     for (I3=ceild(2*13+3*I2+1,3);I3<=min(N1,13-I2);I3++) {
4997       J3 = 13-(I2)-(I3) ;
4998       S1++;
4999     }
5000   }
5001   for (I3=4*2+1;I3<=floord(13*2+1,3);I3++) {
5002     J3 = -(13)-2*(I2)+2*I3 ;
5003     S2++;
5004     J3 = 13-(I2)-(I3) ;
5005     S1++;
5006   }
5007   if ((13*13-1)%18 == 0) {
5008     I3 = (13*13-1)/18 ;
5009     J1 = -2*(13)+3*I3 ;
5010     if ((2*13+J1)%3 == 0) {
5011       J2 = (2*13+J1)/3 ;
5012       J3 = 3*13-4*J2 ;
5013       S1++;
5014       S2++;
5015     }
5016   }
5017   for (I3=ceild(13*2+3,3);I3<=floord(15*2+2,3);I3++) {
5018     J3 = 13-(I2)-(I3) ;
5019     S1++;
5020     J3 = -(13)-2*(I2)+2*I3 ;
5021     S2++;
5022   }
5023   if ((5*13+1)%6 == 0) {
5024     I3 = (5*13+1)/6 ;
5025     J3 = 13-(I2)-(I3) ;
5026     S1++;
5027   }
5028   if (13%6 == 0) {
5029     for (I3=4*13/6;I3<=floord(13*13/6-1,3);I3++) {
5030       J3 = -(13)-2*(I2)+2*I3 ;
5031       S2++;
5032       J3 = 13-(I2)-(I3) ;
5033       S1++;
5034     }
5035     if (13*13%18 == 0) {
5036       I3 = 13*13/18 ;
5037       J1 = -2*(13)+3*I3 ;
5038       if ((2*13+J1)%3 == 0) {
5039         J2 = (2*13+J1)/3 ;
5040         J3 = 3*13-4*J2 ;
5041         S1++;
5042         S2++;
5043       }
5044     }
5045     for (I3=ceild(13*13/6+1,3);I3<=min(N1,5*13/6);I3++) {
5046       J3 = 13-(I2)-(I3) ;
5047       S1++;
5048       J3 = -(13)-2*(I2)+2*I3 ;
5049       S2++;
5050     }
5051   }
5052   for (I2=max(3,-N1+14);I2<=2;I2++) {
5053     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
5054       J3 = 13-(I2)-(I3) ;
5055       S1++;
5056     }
5057     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
5058       J3 = -(13)-2*(I2)+2*I3 ;
5059       S2++;
5060       J3 = 13-(I2)-(I3) ;
5061       S1++;
5062     }
5063     if ((2*13+I2)%3 == 0) {
5064       I3 = (2*13+I2)/3 ;
5065       J1 = -2*(13)+3*I3 ;
5066       if ((2*13+J1)%3 == 0) {
5067         J2 = (2*13+J1)/3 ;
5068         J3 = 3*13-4*J2 ;
5069         S1++;
5070         S2++;
5071       }
5072     }
5073     for (I3=ceild(2*13+I2+1,3);I3<=13-I2;I3++) {
5074       J3 = 13-(I2)-(I3) ;
5075       S1++;
5076       J3 = -(13)-2*(I2)+2*I3 ;
5077       S2++;
5078     }
5079   }
5080   for (I2=3;I2<=2;I2++) {
5081     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
5082       J3 = 13-(I2)-(I3) ;
5083       S1++;
5084     }
5085     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
5086       J3 = -(13)-2*(I2)+2*I3 ;
5087       S2++;
5088       J3 = 13-(I2)-(I3) ;
5089       S1++;
5090     }
5091     if ((2*13+I2)%3 == 0) {
5092       I3 = (2*13+I2)/3 ;
5093       J1 = -2*(13)+3*I3 ;
5094       if ((2*13+J1)%3 == 0) {
5095         J2 = (2*13+J1)/3 ;
5096         J3 = 3*13-4*J2 ;
5097         S1++;
5098         S2++;
5099       }
5100     }
5101     for (I3=ceild(2*13+I2+1,3);I3<=13-I2;I3++) {
5102       J3 = 13-(I2)-(I3) ;
5103       S1++;
5104       J3 = -(13)-2*(I2)+2*I3 ;
5105       S2++;
5106     }
5107     for (I3=13-I2+1;I3<=min(N1,floord(2*13+3*I2,3));I3++) {
5108       J3 = -(13)-2*(I2)+2*I3 ;
5109       S2++;
5110     }
5111   }
5112   for (I3=2*3+1;I3<=3*3;I3++) {
5113     J3 = 13-(I2)-(I3) ;
5114     S1++;
5115   }
5116   if ((9*13-1)%12 == 0) {
5117     I3 = (9*13-1)/12 ;
5118     J1 = -2*(13)+3*I3 ;
5119     if ((2*13+J1)%3 == 0) {
5120       J2 = (2*13+J1)/3 ;
5121       J3 = 3*13-4*J2 ;
5122       S1++;
5123       S2++;
5124     }
5125   }
5126   if ((3*13+1)%4 == 0) {
5127     I3 = (3*13+1)/4 ;
5128     J3 = 13-(I2)-(I3) ;
5129     S1++;
5130     J3 = -(13)-2*(I2)+2*I3 ;
5131     S2++;
5132   }
5133   for (I3=3*3+2;I3<=min(N1,floord(11*3+2,3));I3++) {
5134     J3 = -(13)-2*(I2)+2*I3 ;
5135     S2++;
5136   }
5137   if (13%4 == 0) {
5138     for (I3=2*13/4;I3<=floord(6*13/4-1,2);I3++) {
5139       J3 = 13-(I2)-(I3) ;
5140       S1++;
5141     }
5142     if (3*13%4 == 0) {
5143       I3 = 3*13/4 ;
5144       J1 = -2*(13)+3*I3 ;
5145       if ((2*13+J1)%3 == 0) {
5146         J2 = (2*13+J1)/3 ;
5147         J3 = 3*13-4*J2 ;
5148         S1++;
5149         S2++;
5150       }
5151     }
5152     for (I3=3*13/4+1;I3<=min(N1,floord(11*13/4,3));I3++) {
5153       J3 = -(13)-2*(I2)+2*I3 ;
5154       S2++;
5155     }
5156   }
5157   for (I2=4;I2<=floord(2*N1-13,2);I2++) {
5158     for (I3=max(max(1,ceild(13-I2,2)),13-2*I2);I3<=13-I2;I3++) {
5159       J3 = 13-(I2)-(I3) ;
5160       S1++;
5161     }
5162     for (I3=max(13-I2+1,ceild(13+2*I2,2));I3<=min(N1,floord(2*13+3*I2,3));I3++) {
5163       J3 = -(13)-2*(I2)+2*I3 ;
5164       S2++;
5165     }
5166   }
5167   for (I2=N1-6;I2<=min(N1,12);I2++) {
5168     for (I3=max(max(ceild(13-I2,2),13-2*I2),1);I3<=min(13-I2,N1);I3++) {
5169       J3 = 13-(I2)-(I3) ;
5170       S1++;
5171     }
5172   }
5174 if ((N1 >= 12) && (N1 <= 11)) {
5175   for (I3=ceild(13+2*1,2);I3<=min(13-2*(1)-1,floord(2*13+3*1,3));I3++) {
5176     J3 = -(13)-2*(I2)+2*I3 ;
5177     S2++;
5178   }
5179   for (I3=13-2*(1);I3<=min(N1,13-(1));I3++) {
5180     J3 = 13-(I2)-(I3) ;
5181     S1++;
5182   }
5183   for (I2=2;I2<=1;I2++) {
5184     for (I3=ceild(13+2*I2,2);I3<=13-2*I2-1;I3++) {
5185       J3 = -(13)-2*(I2)+2*I3 ;
5186       S2++;
5187     }
5188     for (I3=13-2*I2;I3<=floord(2*13+3*I2,3);I3++) {
5189       J3 = 13-(I2)-(I3) ;
5190       S1++;
5191       J3 = -(13)-2*(I2)+2*I3 ;
5192       S2++;
5193     }
5194     for (I3=ceild(2*13+3*I2+1,3);I3<=min(N1,13-I2);I3++) {
5195       J3 = 13-(I2)-(I3) ;
5196       S1++;
5197     }
5198   }
5199   for (I3=4*2+1;I3<=floord(13*2+1,3);I3++) {
5200     J3 = -(13)-2*(I2)+2*I3 ;
5201     S2++;
5202     J3 = 13-(I2)-(I3) ;
5203     S1++;
5204   }
5205   if ((13*13-1)%18 == 0) {
5206     I3 = (13*13-1)/18 ;
5207     J1 = -2*(13)+3*I3 ;
5208     if ((2*13+J1)%3 == 0) {
5209       J2 = (2*13+J1)/3 ;
5210       J3 = 3*13-4*J2 ;
5211       S1++;
5212       S2++;
5213     }
5214   }
5215   for (I3=ceild(13*2+3,3);I3<=floord(15*2+2,3);I3++) {
5216     J3 = 13-(I2)-(I3) ;
5217     S1++;
5218     J3 = -(13)-2*(I2)+2*I3 ;
5219     S2++;
5220   }
5221   if ((5*13+1)%6 == 0) {
5222     I3 = (5*13+1)/6 ;
5223     J3 = 13-(I2)-(I3) ;
5224     S1++;
5225   }
5226   if (13%6 == 0) {
5227     for (I3=4*13/6;I3<=floord(13*13/6-1,3);I3++) {
5228       J3 = -(13)-2*(I2)+2*I3 ;
5229       S2++;
5230       J3 = 13-(I2)-(I3) ;
5231       S1++;
5232     }
5233     if (13*13%18 == 0) {
5234       I3 = 13*13/18 ;
5235       J1 = -2*(13)+3*I3 ;
5236       if ((2*13+J1)%3 == 0) {
5237         J2 = (2*13+J1)/3 ;
5238         J3 = 3*13-4*J2 ;
5239         S1++;
5240         S2++;
5241       }
5242     }
5243     for (I3=ceild(13*13/6+1,3);I3<=min(N1,5*13/6);I3++) {
5244       J3 = 13-(I2)-(I3) ;
5245       S1++;
5246       J3 = -(13)-2*(I2)+2*I3 ;
5247       S2++;
5248     }
5249   }
5250   for (I2=-N1+14;I2<=2;I2++) {
5251     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
5252       J3 = 13-(I2)-(I3) ;
5253       S1++;
5254     }
5255     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
5256       J3 = -(13)-2*(I2)+2*I3 ;
5257       S2++;
5258       J3 = 13-(I2)-(I3) ;
5259       S1++;
5260     }
5261     if ((2*13+I2)%3 == 0) {
5262       I3 = (2*13+I2)/3 ;
5263       J1 = -2*(13)+3*I3 ;
5264       if ((2*13+J1)%3 == 0) {
5265         J2 = (2*13+J1)/3 ;
5266         J3 = 3*13-4*J2 ;
5267         S1++;
5268         S2++;
5269       }
5270     }
5271     for (I3=ceild(2*13+I2+1,3);I3<=13-I2;I3++) {
5272       J3 = 13-(I2)-(I3) ;
5273       S1++;
5274       J3 = -(13)-2*(I2)+2*I3 ;
5275       S2++;
5276     }
5277     for (I3=13-I2+1;I3<=min(N1,floord(2*13+3*I2,3));I3++) {
5278       J3 = -(13)-2*(I2)+2*I3 ;
5279       S2++;
5280     }
5281   }
5282   for (I3=2*3+1;I3<=3*3;I3++) {
5283     J3 = 13-(I2)-(I3) ;
5284     S1++;
5285   }
5286   if ((9*13-1)%12 == 0) {
5287     I3 = (9*13-1)/12 ;
5288     J1 = -2*(13)+3*I3 ;
5289     if ((2*13+J1)%3 == 0) {
5290       J2 = (2*13+J1)/3 ;
5291       J3 = 3*13-4*J2 ;
5292       S1++;
5293       S2++;
5294     }
5295   }
5296   if ((3*13+1)%4 == 0) {
5297     I3 = (3*13+1)/4 ;
5298     J3 = 13-(I2)-(I3) ;
5299     S1++;
5300     J3 = -(13)-2*(I2)+2*I3 ;
5301     S2++;
5302   }
5303   for (I3=3*3+2;I3<=min(N1,floord(11*3+2,3));I3++) {
5304     J3 = -(13)-2*(I2)+2*I3 ;
5305     S2++;
5306   }
5307   if (13%4 == 0) {
5308     for (I3=2*13/4;I3<=floord(6*13/4-1,2);I3++) {
5309       J3 = 13-(I2)-(I3) ;
5310       S1++;
5311     }
5312     if (3*13%4 == 0) {
5313       I3 = 3*13/4 ;
5314       J1 = -2*(13)+3*I3 ;
5315       if ((2*13+J1)%3 == 0) {
5316         J2 = (2*13+J1)/3 ;
5317         J3 = 3*13-4*J2 ;
5318         S1++;
5319         S2++;
5320       }
5321     }
5322     for (I3=3*13/4+1;I3<=min(N1,floord(11*13/4,3));I3++) {
5323       J3 = -(13)-2*(I2)+2*I3 ;
5324       S2++;
5325     }
5326   }
5327   for (I2=4;I2<=floord(2*N1-13,2);I2++) {
5328     for (I3=max(max(1,ceild(13-I2,2)),13-2*I2);I3<=13-I2;I3++) {
5329       J3 = 13-(I2)-(I3) ;
5330       S1++;
5331     }
5332     for (I3=max(13-I2+1,ceild(13+2*I2,2));I3<=min(N1,floord(2*13+3*I2,3));I3++) {
5333       J3 = -(13)-2*(I2)+2*I3 ;
5334       S2++;
5335     }
5336   }
5337   for (I2=N1-6;I2<=N1;I2++) {
5338     for (I3=max(max(ceild(13-I2,2),13-2*I2),1);I3<=min(13-I2,N1);I3++) {
5339       J3 = 13-(I2)-(I3) ;
5340       S1++;
5341     }
5342   }
5344 if (N1 == 11) {
5345   for (I3=ceild(13+2*1,2);I3<=min(13-2*(1)-1,floord(2*13+3*1,3));I3++) {
5346     J3 = -(13)-2*(I2)+2*I3 ;
5347     S2++;
5348   }
5349   for (I3=13-2*(1);I3<=min(N1,13-(1));I3++) {
5350     J3 = 13-(I2)-(I3) ;
5351     S1++;
5352   }
5353   for (I2=2;I2<=1;I2++) {
5354     for (I3=ceild(13+2*I2,2);I3<=13-2*I2-1;I3++) {
5355       J3 = -(13)-2*(I2)+2*I3 ;
5356       S2++;
5357     }
5358     for (I3=13-2*I2;I3<=floord(2*13+3*I2,3);I3++) {
5359       J3 = 13-(I2)-(I3) ;
5360       S1++;
5361       J3 = -(13)-2*(I2)+2*I3 ;
5362       S2++;
5363     }
5364     for (I3=ceild(2*13+3*I2+1,3);I3<=min(N1,13-I2);I3++) {
5365       J3 = 13-(I2)-(I3) ;
5366       S1++;
5367     }
5368   }
5369   for (I3=4*2+1;I3<=floord(13*2+1,3);I3++) {
5370     J3 = -(13)-2*(I2)+2*I3 ;
5371     S2++;
5372     J3 = 13-(I2)-(I3) ;
5373     S1++;
5374   }
5375   if ((13*13-1)%18 == 0) {
5376     I3 = (13*13-1)/18 ;
5377     J1 = -2*(13)+3*I3 ;
5378     if ((2*13+J1)%3 == 0) {
5379       J2 = (2*13+J1)/3 ;
5380       J3 = 3*13-4*J2 ;
5381       S1++;
5382       S2++;
5383     }
5384   }
5385   for (I3=ceild(13*2+3,3);I3<=floord(15*2+2,3);I3++) {
5386     J3 = 13-(I2)-(I3) ;
5387     S1++;
5388     J3 = -(13)-2*(I2)+2*I3 ;
5389     S2++;
5390   }
5391   if ((5*13+1)%6 == 0) {
5392     I3 = (5*13+1)/6 ;
5393     J3 = 13-(I2)-(I3) ;
5394     S1++;
5395   }
5396   if (13%6 == 0) {
5397     for (I3=4*13/6;I3<=floord(13*13/6-1,3);I3++) {
5398       J3 = -(13)-2*(I2)+2*I3 ;
5399       S2++;
5400       J3 = 13-(I2)-(I3) ;
5401       S1++;
5402     }
5403     if (13*13%18 == 0) {
5404       I3 = 13*13/18 ;
5405       J1 = -2*(13)+3*I3 ;
5406       if ((2*13+J1)%3 == 0) {
5407         J2 = (2*13+J1)/3 ;
5408         J3 = 3*13-4*J2 ;
5409         S1++;
5410         S2++;
5411       }
5412     }
5413     for (I3=ceild(13*13/6+1,3);I3<=min(N1,5*13/6);I3++) {
5414       J3 = 13-(I2)-(I3) ;
5415       S1++;
5416       J3 = -(13)-2*(I2)+2*I3 ;
5417       S2++;
5418     }
5419   }
5420   for (I3=2*3+1;I3<=3*3;I3++) {
5421     J3 = 13-(I2)-(I3) ;
5422     S1++;
5423   }
5424   if ((9*13-1)%12 == 0) {
5425     I3 = (9*13-1)/12 ;
5426     J1 = -2*(13)+3*I3 ;
5427     if ((2*13+J1)%3 == 0) {
5428       J2 = (2*13+J1)/3 ;
5429       J3 = 3*13-4*J2 ;
5430       S1++;
5431       S2++;
5432     }
5433   }
5434   if ((3*13+1)%4 == 0) {
5435     I3 = (3*13+1)/4 ;
5436     J3 = 13-(I2)-(I3) ;
5437     S1++;
5438     J3 = -(13)-2*(I2)+2*I3 ;
5439     S2++;
5440   }
5441   for (I3=3*3+2;I3<=min(N1,floord(11*3+2,3));I3++) {
5442     J3 = -(13)-2*(I2)+2*I3 ;
5443     S2++;
5444   }
5445   if (13%4 == 0) {
5446     for (I3=2*13/4;I3<=floord(6*13/4-1,2);I3++) {
5447       J3 = 13-(I2)-(I3) ;
5448       S1++;
5449     }
5450     if (3*13%4 == 0) {
5451       I3 = 3*13/4 ;
5452       J1 = -2*(13)+3*I3 ;
5453       if ((2*13+J1)%3 == 0) {
5454         J2 = (2*13+J1)/3 ;
5455         J3 = 3*13-4*J2 ;
5456         S1++;
5457         S2++;
5458       }
5459     }
5460     for (I3=3*13/4+1;I3<=min(N1,floord(11*13/4,3));I3++) {
5461       J3 = -(13)-2*(I2)+2*I3 ;
5462       S2++;
5463     }
5464   }
5465   for (I3=max(max(1,ceild(13-(4),2)),13-2*(4));I3<=13-(4);I3++) {
5466     J3 = 13-(I2)-(I3) ;
5467     S1++;
5468   }
5469   for (I3=max(13-(4)+1,ceild(13+2*4,2));I3<=min(N1,floord(2*13+3*4,3));I3++) {
5470     J3 = -(13)-2*(I2)+2*I3 ;
5471     S2++;
5472   }
5473   for (I2=5;I2<=11;I2++) {
5474     for (I3=max(max(ceild(13-I2,2),13-2*I2),1);I3<=min(13-I2,N1);I3++) {
5475       J3 = 13-(I2)-(I3) ;
5476       S1++;
5477     }
5478   }
5480 if ((N1 >= 9) && (N1 <= 10)) {
5481   if ((4*N1-4)%3 == 0) {
5482     I1 = (4*N1-4)/3 ;
5483     for (I2=1;I2<=floord(4*N1-7,27);I2++) {
5484       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
5485         J3 = -I1-2*(I2)+2*I3 ;
5486         S2++;
5487       }
5488       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
5489         J3 = I1-(I2)-(I3) ;
5490         S1++;
5491       }
5492     }
5493     for (I2=ceild(4*N1-4,27);I2<=floord(4*N1-7,21);I2++) {
5494       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
5495         J3 = -I1-2*(I2)+2*I3 ;
5496         S2++;
5497       }
5498       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
5499         J3 = I1-(I2)-(I3) ;
5500         S1++;
5501         J3 = -I1-2*(I2)+2*I3 ;
5502         S2++;
5503       }
5504       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
5505         J3 = I1-(I2)-(I3) ;
5506         S1++;
5507       }
5508     }
5509     if ((2*N1-2)%9 == 0) {
5510       I2 = (2*N1-2)/9 ;
5511       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
5512         J3 = -I1-2*(I2)+2*I3 ;
5513         S2++;
5514         J3 = I1-(I2)-(I3) ;
5515         S1++;
5516       }
5517       if (13*I1%18 == 0) {
5518         I3 = 13*I1/18 ;
5519         J1 = -2*I1+3*I3 ;
5520         if ((2*I1+J1)%3 == 0) {
5521           J2 = (2*I1+J1)/3 ;
5522           J3 = 3*I1-4*J2 ;
5523           S1++;
5524           S2++;
5525         }
5526       }
5527       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
5528         J3 = I1-(I2)-(I3) ;
5529         S1++;
5530         J3 = -I1-2*(I2)+2*I3 ;
5531         S2++;
5532       }
5533     }
5534     if ((N1-1)%3 == 0) {
5535       I2 = (N1-1)/3 ;
5536       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
5537         J3 = I1-(I2)-(I3) ;
5538         S1++;
5539       }
5540       if (3*I1%4 == 0) {
5541         I3 = 3*I1/4 ;
5542         J1 = -2*I1+3*I3 ;
5543         if ((2*I1+J1)%3 == 0) {
5544           J2 = (2*I1+J1)/3 ;
5545           J3 = 3*I1-4*J2 ;
5546           S1++;
5547           S2++;
5548         }
5549       }
5550       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
5551         J3 = -I1-2*(I2)+2*I3 ;
5552         S2++;
5553       }
5554     }
5555     for (I2=ceild(4*N1-1,12);I2<=floord(N1+2,3);I2++) {
5556       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
5557         J3 = I1-(I2)-(I3) ;
5558         S1++;
5559       }
5560       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
5561         J3 = -I1-2*(I2)+2*I3 ;
5562         S2++;
5563       }
5564     }
5565     for (I2=ceild(2*N1+7,6);I2<=N1;I2++) {
5566       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
5567         J3 = I1-(I2)-(I3) ;
5568         S1++;
5569       }
5570     }
5571   }
5573 if (N1 == 11) {
5574   for (I3=ceild(14+2*1,2);I3<=min(N1,floord(2*14+3*1,3));I3++) {
5575     J3 = -(14)-2*(I2)+2*I3 ;
5576     S2++;
5577   }
5578   for (I2=2;I2<=1;I2++) {
5579     for (I3=ceild(14+2*I2,2);I3<=14-2*I2-1;I3++) {
5580       J3 = -(14)-2*(I2)+2*I3 ;
5581       S2++;
5582     }
5583     for (I3=14-2*I2;I3<=N1;I3++) {
5584       J3 = 14-(I2)-(I3) ;
5585       S1++;
5586       J3 = -(14)-2*(I2)+2*I3 ;
5587       S2++;
5588     }
5589   }
5590   for (I3=ceild(9*2,2);I3<=5*2-1;I3++) {
5591     J3 = -(14)-2*(I2)+2*I3 ;
5592     S2++;
5593   }
5594   if (5*14%7 == 0) {
5595     I3 = 5*14/7 ;
5596     J1 = -2*(14)+3*I3 ;
5597     if ((2*14+J1)%3 == 0) {
5598       J2 = (2*14+J1)/3 ;
5599       J3 = 3*14-4*J2 ;
5600       S1++;
5601       S2++;
5602     }
5603   }
5604   for (I3=ceild(15*2+1,3);I3<=N1;I3++) {
5605     J3 = 14-(I2)-(I3) ;
5606     S1++;
5607     J3 = -(14)-2*(I2)+2*I3 ;
5608     S2++;
5609   }
5610   if (7%3 == 0) {
5611     for (I3=4*7/3;I3<=floord(13*7/3-1,3);I3++) {
5612       J3 = -(14)-2*(I2)+2*I3 ;
5613       S2++;
5614       J3 = 14-(I2)-(I3) ;
5615       S1++;
5616     }
5617     if (13*14%18 == 0) {
5618       I3 = 13*14/18 ;
5619       J1 = -2*(14)+3*I3 ;
5620       if ((2*14+J1)%3 == 0) {
5621         J2 = (2*14+J1)/3 ;
5622         J3 = 3*14-4*J2 ;
5623         S1++;
5624         S2++;
5625       }
5626     }
5627     for (I3=ceild(13*7/3+1,3);I3<=min(N1,5*7/3);I3++) {
5628       J3 = 14-(I2)-(I3) ;
5629       S1++;
5630       J3 = -(14)-2*(I2)+2*I3 ;
5631       S2++;
5632     }
5633   }
5634   for (I3=14-2*(3);I3<=floord(14+2*3-1,2);I3++) {
5635     J3 = 14-(I2)-(I3) ;
5636     S1++;
5637   }
5638   for (I3=ceild(14+2*3,2);I3<=floord(2*14+3-1,3);I3++) {
5639     J3 = -(14)-2*(I2)+2*I3 ;
5640     S2++;
5641     J3 = 14-(I2)-(I3) ;
5642     S1++;
5643   }
5644   if ((2*14+3)%3 == 0) {
5645     I3 = (2*14+3)/3 ;
5646     J1 = -2*(14)+3*I3 ;
5647     if ((2*14+J1)%3 == 0) {
5648       J2 = (2*14+J1)/3 ;
5649       J3 = 3*14-4*J2 ;
5650       S1++;
5651       S2++;
5652     }
5653   }
5654   for (I3=ceild(2*14+3+1,3);I3<=N1;I3++) {
5655     J3 = 14-(I2)-(I3) ;
5656     S1++;
5657     J3 = -(14)-2*(I2)+2*I3 ;
5658     S2++;
5659   }
5660   for (I3=max(max(1,ceild(14-(4),2)),14-2*(4));I3<=14-(4);I3++) {
5661     J3 = 14-(I2)-(I3) ;
5662     S1++;
5663   }
5664   for (I3=max(14-(4)+1,ceild(14+2*4,2));I3<=min(N1,floord(2*14+3*4,3));I3++) {
5665     J3 = -(14)-2*(I2)+2*I3 ;
5666     S2++;
5667   }
5668   for (I2=5;I2<=11;I2++) {
5669     for (I3=max(max(ceild(14-I2,2),14-2*I2),1);I3<=min(14-I2,N1);I3++) {
5670       J3 = 14-(I2)-(I3) ;
5671       S1++;
5672     }
5673   }
5675 if (N1 == 10) {
5676   for (I3=ceild(13+2*1,2);I3<=min(N1,floord(2*13+3*1,3));I3++) {
5677     J3 = -(13)-2*(I2)+2*I3 ;
5678     S2++;
5679   }
5680   for (I2=2;I2<=1;I2++) {
5681     for (I3=ceild(13+2*I2,2);I3<=13-2*I2-1;I3++) {
5682       J3 = -(13)-2*(I2)+2*I3 ;
5683       S2++;
5684     }
5685     for (I3=13-2*I2;I3<=N1;I3++) {
5686       J3 = 13-(I2)-(I3) ;
5687       S1++;
5688       J3 = -(13)-2*(I2)+2*I3 ;
5689       S2++;
5690     }
5691   }
5692   for (I3=4*2+1;I3<=floord(13*2+1,3);I3++) {
5693     J3 = -(13)-2*(I2)+2*I3 ;
5694     S2++;
5695     J3 = 13-(I2)-(I3) ;
5696     S1++;
5697   }
5698   if ((13*13-1)%18 == 0) {
5699     I3 = (13*13-1)/18 ;
5700     J1 = -2*(13)+3*I3 ;
5701     if ((2*13+J1)%3 == 0) {
5702       J2 = (2*13+J1)/3 ;
5703       J3 = 3*13-4*J2 ;
5704       S1++;
5705       S2++;
5706     }
5707   }
5708   for (I3=ceild(13*2+3,3);I3<=N1;I3++) {
5709     J3 = 13-(I2)-(I3) ;
5710     S1++;
5711     J3 = -(13)-2*(I2)+2*I3 ;
5712     S2++;
5713   }
5714   if (13%6 == 0) {
5715     for (I3=4*13/6;I3<=floord(13*13/6-1,3);I3++) {
5716       J3 = -(13)-2*(I2)+2*I3 ;
5717       S2++;
5718       J3 = 13-(I2)-(I3) ;
5719       S1++;
5720     }
5721     if (13*13%18 == 0) {
5722       I3 = 13*13/18 ;
5723       J1 = -2*(13)+3*I3 ;
5724       if ((2*13+J1)%3 == 0) {
5725         J2 = (2*13+J1)/3 ;
5726         J3 = 3*13-4*J2 ;
5727         S1++;
5728         S2++;
5729       }
5730     }
5731     for (I3=ceild(13*13/6+1,3);I3<=min(N1,5*13/6);I3++) {
5732       J3 = 13-(I2)-(I3) ;
5733       S1++;
5734       J3 = -(13)-2*(I2)+2*I3 ;
5735       S2++;
5736     }
5737   }
5738   for (I2=3;I2<=2;I2++) {
5739     for (I3=13-2*I2;I3<=floord(13+2*I2-1,2);I3++) {
5740       J3 = 13-(I2)-(I3) ;
5741       S1++;
5742     }
5743     for (I3=ceild(13+2*I2,2);I3<=floord(2*13+I2-1,3);I3++) {
5744       J3 = -(13)-2*(I2)+2*I3 ;
5745       S2++;
5746       J3 = 13-(I2)-(I3) ;
5747       S1++;
5748     }
5749     if ((2*13+I2)%3 == 0) {
5750       I3 = (2*13+I2)/3 ;
5751       J1 = -2*(13)+3*I3 ;
5752       if ((2*13+J1)%3 == 0) {
5753         J2 = (2*13+J1)/3 ;
5754         J3 = 3*13-4*J2 ;
5755         S1++;
5756         S2++;
5757       }
5758     }
5759     for (I3=ceild(2*13+I2+1,3);I3<=N1;I3++) {
5760       J3 = 13-(I2)-(I3) ;
5761       S1++;
5762       J3 = -(13)-2*(I2)+2*I3 ;
5763       S2++;
5764     }
5765   }
5766   for (I3=ceild(2*N1+1,3);I3<=N1-1;I3++) {
5767     J3 = 13-(I2)-(I3) ;
5768     S1++;
5769   }
5770   if (-1%3 == 0) {
5771     I3 = (3*N1-1)/3 ;
5772     J1 = -2*(13)+3*I3 ;
5773     if ((2*13+J1)%3 == 0) {
5774       J2 = (2*13+J1)/3 ;
5775       J3 = 3*13-4*J2 ;
5776       S1++;
5777       S2++;
5778     }
5779   }
5780   J3 = 13-(I2)-(I3) ;
5781   S1++;
5782   J3 = -(13)-2*(I2)+2*I3 ;
5783   S2++;
5784   for (I2=4;I2<=10;I2++) {
5785     for (I3=max(max(ceild(13-I2,2),13-2*I2),1);I3<=min(13-I2,N1);I3++) {
5786       J3 = 13-(I2)-(I3) ;
5787       S1++;
5788     }
5789   }
5791 for (I1=max(20,ceild(2*N1+1,3));I1<=floord(2*N1+2,3);I1++) {
5792   for (I2=1;I2<=floord(I1-1,9);I2++) {
5793     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
5794       J3 = -I1-2*(I2)+2*I3 ;
5795       S2++;
5796     }
5797     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
5798       J3 = I1-(I2)-(I3) ;
5799       S1++;
5800     }
5801   }
5802   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
5803     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
5804       J3 = -I1-2*(I2)+2*I3 ;
5805       S2++;
5806     }
5807     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
5808       J3 = I1-(I2)-(I3) ;
5809       S1++;
5810       J3 = -I1-2*(I2)+2*I3 ;
5811       S2++;
5812     }
5813     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
5814       J3 = I1-(I2)-(I3) ;
5815       S1++;
5816     }
5817   }
5818   if (I1%7 == 0) {
5819     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
5820       J3 = -I1-2*(I2)+2*I3 ;
5821       S2++;
5822     }
5823     if (5*I1%7 == 0) {
5824       I3 = 5*I1/7 ;
5825       J1 = -2*I1+3*I3 ;
5826       if ((2*I1+J1)%3 == 0) {
5827         J2 = (2*I1+J1)/3 ;
5828         J3 = 3*I1-4*J2 ;
5829         S1++;
5830         S2++;
5831       }
5832     }
5833     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
5834       J3 = I1-(I2)-(I3) ;
5835       S1++;
5836       J3 = -I1-2*(I2)+2*I3 ;
5837       S2++;
5838     }
5839     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
5840       J3 = I1-(I2)-(I3) ;
5841       S1++;
5842     }
5843   }
5844   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
5845     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
5846       J3 = -I1-2*(I2)+2*I3 ;
5847       S2++;
5848     }
5849     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
5850       J3 = -I1-2*(I2)+2*I3 ;
5851       S2++;
5852       J3 = I1-(I2)-(I3) ;
5853       S1++;
5854     }
5855     if ((2*I1+I2)%3 == 0) {
5856       I3 = (2*I1+I2)/3 ;
5857       J1 = -2*I1+3*I3 ;
5858       if ((2*I1+J1)%3 == 0) {
5859         J2 = (2*I1+J1)/3 ;
5860         J3 = 3*I1-4*J2 ;
5861         S1++;
5862         S2++;
5863       }
5864     }
5865     for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
5866       J3 = I1-(I2)-(I3) ;
5867       S1++;
5868       J3 = -I1-2*(I2)+2*I3 ;
5869       S2++;
5870     }
5871     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
5872       J3 = I1-(I2)-(I3) ;
5873       S1++;
5874     }
5875   }
5876   if ((I1-1)%6 == 0) {
5877     I2 = (I1-1)/6 ;
5878     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
5879       J3 = -I1-2*(I2)+2*I3 ;
5880       S2++;
5881       J3 = I1-(I2)-(I3) ;
5882       S1++;
5883     }
5884     if ((13*I1-1)%18 == 0) {
5885       I3 = (13*I1-1)/18 ;
5886       J1 = -2*I1+3*I3 ;
5887       if ((2*I1+J1)%3 == 0) {
5888         J2 = (2*I1+J1)/3 ;
5889         J3 = 3*I1-4*J2 ;
5890         S1++;
5891         S2++;
5892       }
5893     }
5894     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
5895       J3 = I1-(I2)-(I3) ;
5896       S1++;
5897       J3 = -I1-2*(I2)+2*I3 ;
5898       S2++;
5899     }
5900     if ((5*I1+1)%6 == 0) {
5901       I3 = (5*I1+1)/6 ;
5902       J3 = I1-(I2)-(I3) ;
5903       S1++;
5904     }
5905   }
5906   if (I1%6 == 0) {
5907     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
5908       J3 = -I1-2*(I2)+2*I3 ;
5909       S2++;
5910       J3 = I1-(I2)-(I3) ;
5911       S1++;
5912     }
5913     if (13*I1%18 == 0) {
5914       I3 = 13*I1/18 ;
5915       J1 = -2*I1+3*I3 ;
5916       if ((2*I1+J1)%3 == 0) {
5917         J2 = (2*I1+J1)/3 ;
5918         J3 = 3*I1-4*J2 ;
5919         S1++;
5920         S2++;
5921       }
5922     }
5923     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
5924       J3 = I1-(I2)-(I3) ;
5925       S1++;
5926       J3 = -I1-2*(I2)+2*I3 ;
5927       S2++;
5928     }
5929   }
5930   for (I2=ceild(I1+1,6);I2<=floord(I1+2,6);I2++) {
5931     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
5932       J3 = I1-(I2)-(I3) ;
5933       S1++;
5934     }
5935     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
5936       J3 = -I1-2*(I2)+2*I3 ;
5937       S2++;
5938       J3 = I1-(I2)-(I3) ;
5939       S1++;
5940     }
5941     if ((2*I1+I2)%3 == 0) {
5942       I3 = (2*I1+I2)/3 ;
5943       J1 = -2*I1+3*I3 ;
5944       if ((2*I1+J1)%3 == 0) {
5945         J2 = (2*I1+J1)/3 ;
5946         J3 = 3*I1-4*J2 ;
5947         S1++;
5948         S2++;
5949       }
5950     }
5951     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
5952       J3 = I1-(I2)-(I3) ;
5953       S1++;
5954       J3 = -I1-2*(I2)+2*I3 ;
5955       S2++;
5956     }
5957   }
5958   for (I2=ceild(I1+3,6);I2<=floord(I1-2,4);I2++) {
5959     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
5960       J3 = I1-(I2)-(I3) ;
5961       S1++;
5962     }
5963     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
5964       J3 = -I1-2*(I2)+2*I3 ;
5965       S2++;
5966       J3 = I1-(I2)-(I3) ;
5967       S1++;
5968     }
5969     if ((2*I1+I2)%3 == 0) {
5970       I3 = (2*I1+I2)/3 ;
5971       J1 = -2*I1+3*I3 ;
5972       if ((2*I1+J1)%3 == 0) {
5973         J2 = (2*I1+J1)/3 ;
5974         J3 = 3*I1-4*J2 ;
5975         S1++;
5976         S2++;
5977       }
5978     }
5979     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
5980       J3 = I1-(I2)-(I3) ;
5981       S1++;
5982       J3 = -I1-2*(I2)+2*I3 ;
5983       S2++;
5984     }
5985     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
5986       J3 = -I1-2*(I2)+2*I3 ;
5987       S2++;
5988     }
5989   }
5990   if ((I1-1)%4 == 0) {
5991     I2 = (I1-1)/4 ;
5992     for (I3=2*I2+1;I3<=3*I2;I3++) {
5993       J3 = I1-(I2)-(I3) ;
5994       S1++;
5995     }
5996     if ((9*I1-1)%12 == 0) {
5997       I3 = (9*I1-1)/12 ;
5998       J1 = -2*I1+3*I3 ;
5999       if ((2*I1+J1)%3 == 0) {
6000         J2 = (2*I1+J1)/3 ;
6001         J3 = 3*I1-4*J2 ;
6002         S1++;
6003         S2++;
6004       }
6005     }
6006     if ((3*I1+1)%4 == 0) {
6007       I3 = (3*I1+1)/4 ;
6008       J3 = I1-(I2)-(I3) ;
6009       S1++;
6010       J3 = -I1-2*(I2)+2*I3 ;
6011       S2++;
6012     }
6013     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
6014       J3 = -I1-2*(I2)+2*I3 ;
6015       S2++;
6016     }
6017   }
6018   if (I1%4 == 0) {
6019     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
6020       J3 = I1-(I2)-(I3) ;
6021       S1++;
6022     }
6023     if (3*I1%4 == 0) {
6024       I3 = 3*I1/4 ;
6025       J1 = -2*I1+3*I3 ;
6026       if ((2*I1+J1)%3 == 0) {
6027         J2 = (2*I1+J1)/3 ;
6028         J3 = 3*I1-4*J2 ;
6029         S1++;
6030         S2++;
6031       }
6032     }
6033     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
6034       J3 = -I1-2*(I2)+2*I3 ;
6035       S2++;
6036     }
6037   }
6038   for (I2=ceild(I1+1,4);I2<=I1-1;I2++) {
6039     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
6040       J3 = I1-(I2)-(I3) ;
6041       S1++;
6042     }
6043     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
6044       J3 = -I1-2*(I2)+2*I3 ;
6045       S2++;
6046     }
6047   }
6049 for (I1=max(14,ceild(2*N1+3,3));I1<=min(min(N1+2,19),floord(6*N1-4,5));I1++) {
6050   for (I2=1;I2<=floord(I1-1,9);I2++) {
6051     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
6052       J3 = -I1-2*(I2)+2*I3 ;
6053       S2++;
6054     }
6055     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
6056       J3 = I1-(I2)-(I3) ;
6057       S1++;
6058     }
6059   }
6060   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
6061     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
6062       J3 = -I1-2*(I2)+2*I3 ;
6063       S2++;
6064     }
6065     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
6066       J3 = I1-(I2)-(I3) ;
6067       S1++;
6068       J3 = -I1-2*(I2)+2*I3 ;
6069       S2++;
6070     }
6071     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
6072       J3 = I1-(I2)-(I3) ;
6073       S1++;
6074     }
6075   }
6076   if (I1%7 == 0) {
6077     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
6078       J3 = -I1-2*(I2)+2*I3 ;
6079       S2++;
6080     }
6081     if (5*I1%7 == 0) {
6082       I3 = 5*I1/7 ;
6083       J1 = -2*I1+3*I3 ;
6084       if ((2*I1+J1)%3 == 0) {
6085         J2 = (2*I1+J1)/3 ;
6086         J3 = 3*I1-4*J2 ;
6087         S1++;
6088         S2++;
6089       }
6090     }
6091     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
6092       J3 = I1-(I2)-(I3) ;
6093       S1++;
6094       J3 = -I1-2*(I2)+2*I3 ;
6095       S2++;
6096     }
6097     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
6098       J3 = I1-(I2)-(I3) ;
6099       S1++;
6100     }
6101   }
6102   if ((I1-1)%6 == 0) {
6103     I2 = (I1-1)/6 ;
6104     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
6105       J3 = -I1-2*(I2)+2*I3 ;
6106       S2++;
6107       J3 = I1-(I2)-(I3) ;
6108       S1++;
6109     }
6110     if ((13*I1-1)%18 == 0) {
6111       I3 = (13*I1-1)/18 ;
6112       J1 = -2*I1+3*I3 ;
6113       if ((2*I1+J1)%3 == 0) {
6114         J2 = (2*I1+J1)/3 ;
6115         J3 = 3*I1-4*J2 ;
6116         S1++;
6117         S2++;
6118       }
6119     }
6120     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
6121       J3 = I1-(I2)-(I3) ;
6122       S1++;
6123       J3 = -I1-2*(I2)+2*I3 ;
6124       S2++;
6125     }
6126     if ((5*I1+1)%6 == 0) {
6127       I3 = (5*I1+1)/6 ;
6128       J3 = I1-(I2)-(I3) ;
6129       S1++;
6130     }
6131   }
6132   if (I1%6 == 0) {
6133     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
6134       J3 = -I1-2*(I2)+2*I3 ;
6135       S2++;
6136       J3 = I1-(I2)-(I3) ;
6137       S1++;
6138     }
6139     if (13*I1%18 == 0) {
6140       I3 = 13*I1/18 ;
6141       J1 = -2*I1+3*I3 ;
6142       if ((2*I1+J1)%3 == 0) {
6143         J2 = (2*I1+J1)/3 ;
6144         J3 = 3*I1-4*J2 ;
6145         S1++;
6146         S2++;
6147       }
6148     }
6149     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
6150       J3 = I1-(I2)-(I3) ;
6151       S1++;
6152       J3 = -I1-2*(I2)+2*I3 ;
6153       S2++;
6154     }
6155   }
6156   for (I2=max(ceild(I1+1,6),I1-N1+1);I2<=floord(I1+2,6);I2++) {
6157     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
6158       J3 = I1-(I2)-(I3) ;
6159       S1++;
6160     }
6161     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
6162       J3 = -I1-2*(I2)+2*I3 ;
6163       S2++;
6164       J3 = I1-(I2)-(I3) ;
6165       S1++;
6166     }
6167     if ((2*I1+I2)%3 == 0) {
6168       I3 = (2*I1+I2)/3 ;
6169       J1 = -2*I1+3*I3 ;
6170       if ((2*I1+J1)%3 == 0) {
6171         J2 = (2*I1+J1)/3 ;
6172         J3 = 3*I1-4*J2 ;
6173         S1++;
6174         S2++;
6175       }
6176     }
6177     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
6178       J3 = I1-(I2)-(I3) ;
6179       S1++;
6180       J3 = -I1-2*(I2)+2*I3 ;
6181       S2++;
6182     }
6183   }
6184   for (I2=ceild(I1+3,6);I2<=floord(I1-2,4);I2++) {
6185     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
6186       J3 = I1-(I2)-(I3) ;
6187       S1++;
6188     }
6189     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
6190       J3 = -I1-2*(I2)+2*I3 ;
6191       S2++;
6192       J3 = I1-(I2)-(I3) ;
6193       S1++;
6194     }
6195     if ((2*I1+I2)%3 == 0) {
6196       I3 = (2*I1+I2)/3 ;
6197       J1 = -2*I1+3*I3 ;
6198       if ((2*I1+J1)%3 == 0) {
6199         J2 = (2*I1+J1)/3 ;
6200         J3 = 3*I1-4*J2 ;
6201         S1++;
6202         S2++;
6203       }
6204     }
6205     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
6206       J3 = I1-(I2)-(I3) ;
6207       S1++;
6208       J3 = -I1-2*(I2)+2*I3 ;
6209       S2++;
6210     }
6211     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
6212       J3 = -I1-2*(I2)+2*I3 ;
6213       S2++;
6214     }
6215   }
6216   if ((I1-1)%4 == 0) {
6217     I2 = (I1-1)/4 ;
6218     for (I3=2*I2+1;I3<=3*I2;I3++) {
6219       J3 = I1-(I2)-(I3) ;
6220       S1++;
6221     }
6222     if ((9*I1-1)%12 == 0) {
6223       I3 = (9*I1-1)/12 ;
6224       J1 = -2*I1+3*I3 ;
6225       if ((2*I1+J1)%3 == 0) {
6226         J2 = (2*I1+J1)/3 ;
6227         J3 = 3*I1-4*J2 ;
6228         S1++;
6229         S2++;
6230       }
6231     }
6232     if ((3*I1+1)%4 == 0) {
6233       I3 = (3*I1+1)/4 ;
6234       J3 = I1-(I2)-(I3) ;
6235       S1++;
6236       J3 = -I1-2*(I2)+2*I3 ;
6237       S2++;
6238     }
6239     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
6240       J3 = -I1-2*(I2)+2*I3 ;
6241       S2++;
6242     }
6243   }
6244   if (I1%4 == 0) {
6245     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
6246       J3 = I1-(I2)-(I3) ;
6247       S1++;
6248     }
6249     if (3*I1%4 == 0) {
6250       I3 = 3*I1/4 ;
6251       J1 = -2*I1+3*I3 ;
6252       if ((2*I1+J1)%3 == 0) {
6253         J2 = (2*I1+J1)/3 ;
6254         J3 = 3*I1-4*J2 ;
6255         S1++;
6256         S2++;
6257       }
6258     }
6259     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
6260       J3 = -I1-2*(I2)+2*I3 ;
6261       S2++;
6262     }
6263   }
6264   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
6265     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
6266       J3 = I1-(I2)-(I3) ;
6267       S1++;
6268     }
6269     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
6270       J3 = -I1-2*(I2)+2*I3 ;
6271       S2++;
6272     }
6273   }
6274   for (I2=ceild(-I1+2*N1+1,2);I2<=min(N1,I1-1);I2++) {
6275     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
6276       J3 = I1-(I2)-(I3) ;
6277       S1++;
6278     }
6279   }
6281 for (I1=max(10,ceild(6*N1+1,5));I1<=min(N1+2,floord(9*N1-3,7));I1++) {
6282   for (I2=1;I2<=floord(I1-1,9);I2++) {
6283     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
6284       J3 = -I1-2*(I2)+2*I3 ;
6285       S2++;
6286     }
6287     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
6288       J3 = I1-(I2)-(I3) ;
6289       S1++;
6290     }
6291   }
6292   for (I2=ceild(I1,9);I2<=floord(-2*I1+3*N1-1,3);I2++) {
6293     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
6294       J3 = -I1-2*(I2)+2*I3 ;
6295       S2++;
6296     }
6297     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
6298       J3 = I1-(I2)-(I3) ;
6299       S1++;
6300       J3 = -I1-2*(I2)+2*I3 ;
6301       S2++;
6302     }
6303     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
6304       J3 = I1-(I2)-(I3) ;
6305       S1++;
6306     }
6307   }
6308   if (I1%6 == 0) {
6309     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
6310       J3 = -I1-2*(I2)+2*I3 ;
6311       S2++;
6312       J3 = I1-(I2)-(I3) ;
6313       S1++;
6314     }
6315     if (13*I1%18 == 0) {
6316       I3 = 13*I1/18 ;
6317       J1 = -2*I1+3*I3 ;
6318       if ((2*I1+J1)%3 == 0) {
6319         J2 = (2*I1+J1)/3 ;
6320         J3 = 3*I1-4*J2 ;
6321         S1++;
6322         S2++;
6323       }
6324     }
6325     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
6326       J3 = I1-(I2)-(I3) ;
6327       S1++;
6328       J3 = -I1-2*(I2)+2*I3 ;
6329       S2++;
6330     }
6331   }
6332   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
6333     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
6334       J3 = I1-(I2)-(I3) ;
6335       S1++;
6336     }
6337     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
6338       J3 = -I1-2*(I2)+2*I3 ;
6339       S2++;
6340       J3 = I1-(I2)-(I3) ;
6341       S1++;
6342     }
6343     if ((2*I1+I2)%3 == 0) {
6344       I3 = (2*I1+I2)/3 ;
6345       J1 = -2*I1+3*I3 ;
6346       if ((2*I1+J1)%3 == 0) {
6347         J2 = (2*I1+J1)/3 ;
6348         J3 = 3*I1-4*J2 ;
6349         S1++;
6350         S2++;
6351       }
6352     }
6353     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
6354       J3 = I1-(I2)-(I3) ;
6355       S1++;
6356       J3 = -I1-2*(I2)+2*I3 ;
6357       S2++;
6358     }
6359   }
6360   for (I2=I1-N1+1;I2<=floord(-I1+2*N1,2);I2++) {
6361     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
6362       J3 = I1-(I2)-(I3) ;
6363       S1++;
6364     }
6365     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
6366       J3 = -I1-2*(I2)+2*I3 ;
6367       S2++;
6368     }
6369   }
6370   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
6371     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
6372       J3 = I1-(I2)-(I3) ;
6373       S1++;
6374     }
6375   }
6377 if (N1 == 15) {
6378   for (I3=ceild(18+2*1,2);I3<=min(N1,floord(2*18+3*1,3));I3++) {
6379     J3 = -(18)-2*(I2)+2*I3 ;
6380     S2++;
6381   }
6382   for (I2=2;I2<=1;I2++) {
6383     for (I3=ceild(18+2*I2,2);I3<=min(18-2*I2-1,floord(2*18+3*I2,3));I3++) {
6384       J3 = -(18)-2*(I2)+2*I3 ;
6385       S2++;
6386     }
6387     for (I3=18-2*I2;I3<=min(N1,18-I2);I3++) {
6388       J3 = 18-(I2)-(I3) ;
6389       S1++;
6390     }
6391   }
6392   for (I3=ceild(18+2*2,2);I3<=18-2*(2)-1;I3++) {
6393     J3 = -(18)-2*(I2)+2*I3 ;
6394     S2++;
6395   }
6396   for (I3=18-2*(2);I3<=floord(2*18+3*2,3);I3++) {
6397     J3 = 18-(I2)-(I3) ;
6398     S1++;
6399     J3 = -(18)-2*(I2)+2*I3 ;
6400     S2++;
6401   }
6402   for (I3=ceild(2*18+3*2+1,3);I3<=min(N1,18-(2));I3++) {
6403     J3 = 18-(I2)-(I3) ;
6404     S1++;
6405   }
6406   if (18%7 == 0) {
6407     for (I3=ceild(9*18/7,2);I3<=5*18/7-1;I3++) {
6408       J3 = -(18)-2*(I2)+2*I3 ;
6409       S2++;
6410     }
6411     if (5*18%7 == 0) {
6412       I3 = 5*18/7 ;
6413       J1 = -2*(18)+3*I3 ;
6414       if ((2*18+J1)%3 == 0) {
6415         J2 = (2*18+J1)/3 ;
6416         J3 = 3*18-4*J2 ;
6417         S1++;
6418         S2++;
6419       }
6420     }
6421     for (I3=ceild(15*18/7+1,3);I3<=floord(17*18/7,3);I3++) {
6422       J3 = 18-(I2)-(I3) ;
6423       S1++;
6424       J3 = -(18)-2*(I2)+2*I3 ;
6425       S2++;
6426     }
6427     for (I3=ceild(17*18/7+1,3);I3<=min(N1,6*18/7);I3++) {
6428       J3 = 18-(I2)-(I3) ;
6429       S1++;
6430     }
6431   }
6432   for (I3=4*3;I3<=floord(13*3-1,3);I3++) {
6433     J3 = -(18)-2*(I2)+2*I3 ;
6434     S2++;
6435     J3 = 18-(I2)-(I3) ;
6436     S1++;
6437   }
6438   if (13*18%18 == 0) {
6439     I3 = 13*18/18 ;
6440     J1 = -2*(18)+3*I3 ;
6441     if ((2*18+J1)%3 == 0) {
6442       J2 = (2*18+J1)/3 ;
6443       J3 = 3*18-4*J2 ;
6444       S1++;
6445       S2++;
6446     }
6447   }
6448   for (I3=ceild(13*3+1,3);I3<=min(N1,5*3);I3++) {
6449     J3 = 18-(I2)-(I3) ;
6450     S1++;
6451     J3 = -(18)-2*(I2)+2*I3 ;
6452     S2++;
6453   }
6454   for (I3=18-2*(4);I3<=floord(18+2*4-1,2);I3++) {
6455     J3 = 18-(I2)-(I3) ;
6456     S1++;
6457   }
6458   for (I3=ceild(18+2*4,2);I3<=floord(2*18+4-1,3);I3++) {
6459     J3 = -(18)-2*(I2)+2*I3 ;
6460     S2++;
6461     J3 = 18-(I2)-(I3) ;
6462     S1++;
6463   }
6464   if ((2*18+4)%3 == 0) {
6465     I3 = (2*18+4)/3 ;
6466     J1 = -2*(18)+3*I3 ;
6467     if ((2*18+J1)%3 == 0) {
6468       J2 = (2*18+J1)/3 ;
6469       J3 = 3*18-4*J2 ;
6470       S1++;
6471       S2++;
6472     }
6473   }
6474   for (I3=ceild(2*18+4+1,3);I3<=18-(4);I3++) {
6475     J3 = 18-(I2)-(I3) ;
6476     S1++;
6477     J3 = -(18)-2*(I2)+2*I3 ;
6478     S2++;
6479   }
6480   for (I3=18-(4)+1;I3<=min(N1,floord(2*18+3*4,3));I3++) {
6481     J3 = -(18)-2*(I2)+2*I3 ;
6482     S2++;
6483   }
6484   if (17%4 == 0) {
6485     for (I3=2*17/4+1;I3<=3*17/4;I3++) {
6486       J3 = 18-(I2)-(I3) ;
6487       S1++;
6488     }
6489     if ((9*18-1)%12 == 0) {
6490       I3 = (9*18-1)/12 ;
6491       J1 = -2*(18)+3*I3 ;
6492       if ((2*18+J1)%3 == 0) {
6493         J2 = (2*18+J1)/3 ;
6494         J3 = 3*18-4*J2 ;
6495         S1++;
6496         S2++;
6497       }
6498     }
6499     if ((3*18+1)%4 == 0) {
6500       I3 = (3*18+1)/4 ;
6501       J3 = 18-(I2)-(I3) ;
6502       S1++;
6503       J3 = -(18)-2*(I2)+2*I3 ;
6504       S2++;
6505     }
6506     for (I3=3*17/4+2;I3<=min(N1,floord(11*17/4+2,3));I3++) {
6507       J3 = -(18)-2*(I2)+2*I3 ;
6508       S2++;
6509     }
6510   }
6511   if (9%2 == 0) {
6512     for (I3=2*9/2;I3<=floord(6*9/2-1,2);I3++) {
6513       J3 = 18-(I2)-(I3) ;
6514       S1++;
6515     }
6516     if (3*18%4 == 0) {
6517       I3 = 3*18/4 ;
6518       J1 = -2*(18)+3*I3 ;
6519       if ((2*18+J1)%3 == 0) {
6520         J2 = (2*18+J1)/3 ;
6521         J3 = 3*18-4*J2 ;
6522         S1++;
6523         S2++;
6524       }
6525     }
6526     for (I3=3*9/2+1;I3<=min(N1,floord(11*9/2,3));I3++) {
6527       J3 = -(18)-2*(I2)+2*I3 ;
6528       S2++;
6529     }
6530   }
6531   for (I2=5;I2<=6;I2++) {
6532     for (I3=max(max(1,ceild(18-I2,2)),18-2*I2);I3<=18-I2;I3++) {
6533       J3 = 18-(I2)-(I3) ;
6534       S1++;
6535     }
6536     for (I3=max(18-I2+1,ceild(18+2*I2,2));I3<=min(N1,floord(2*18+3*I2,3));I3++) {
6537       J3 = -(18)-2*(I2)+2*I3 ;
6538       S2++;
6539     }
6540   }
6541   for (I2=7;I2<=15;I2++) {
6542     for (I3=max(max(ceild(18-I2,2),18-2*I2),1);I3<=min(18-I2,N1);I3++) {
6543       J3 = 18-(I2)-(I3) ;
6544       S1++;
6545     }
6546   }
6548 if (N1 == 16) {
6549   for (I3=ceild(19+2*1,2);I3<=min(N1,floord(2*19+3*1,3));I3++) {
6550     J3 = -(19)-2*(I2)+2*I3 ;
6551     S2++;
6552   }
6553   for (I3=ceild(19+2*2,2);I3<=min(19-2*(2)-1,floord(2*19+3*2,3));I3++) {
6554     J3 = -(19)-2*(I2)+2*I3 ;
6555     S2++;
6556   }
6557   for (I3=19-2*(2);I3<=min(N1,19-(2));I3++) {
6558     J3 = 19-(I2)-(I3) ;
6559     S1++;
6560   }
6561   for (I2=3;I2<=2;I2++) {
6562     for (I3=ceild(19+2*I2,2);I3<=19-2*I2-1;I3++) {
6563       J3 = -(19)-2*(I2)+2*I3 ;
6564       S2++;
6565     }
6566     for (I3=19-2*I2;I3<=floord(2*19+3*I2,3);I3++) {
6567       J3 = 19-(I2)-(I3) ;
6568       S1++;
6569       J3 = -(19)-2*(I2)+2*I3 ;
6570       S2++;
6571     }
6572     for (I3=ceild(2*19+3*I2+1,3);I3<=min(N1,19-I2);I3++) {
6573       J3 = 19-(I2)-(I3) ;
6574       S1++;
6575     }
6576   }
6577   if (19%7 == 0) {
6578     for (I3=ceild(9*19/7,2);I3<=5*19/7-1;I3++) {
6579       J3 = -(19)-2*(I2)+2*I3 ;
6580       S2++;
6581     }
6582     if (5*19%7 == 0) {
6583       I3 = 5*19/7 ;
6584       J1 = -2*(19)+3*I3 ;
6585       if ((2*19+J1)%3 == 0) {
6586         J2 = (2*19+J1)/3 ;
6587         J3 = 3*19-4*J2 ;
6588         S1++;
6589         S2++;
6590       }
6591     }
6592     for (I3=ceild(15*19/7+1,3);I3<=floord(17*19/7,3);I3++) {
6593       J3 = 19-(I2)-(I3) ;
6594       S1++;
6595       J3 = -(19)-2*(I2)+2*I3 ;
6596       S2++;
6597     }
6598     for (I3=ceild(17*19/7+1,3);I3<=min(N1,6*19/7);I3++) {
6599       J3 = 19-(I2)-(I3) ;
6600       S1++;
6601     }
6602   }
6603   for (I3=4*3+1;I3<=floord(13*3+1,3);I3++) {
6604     J3 = -(19)-2*(I2)+2*I3 ;
6605     S2++;
6606     J3 = 19-(I2)-(I3) ;
6607     S1++;
6608   }
6609   if ((13*19-1)%18 == 0) {
6610     I3 = (13*19-1)/18 ;
6611     J1 = -2*(19)+3*I3 ;
6612     if ((2*19+J1)%3 == 0) {
6613       J2 = (2*19+J1)/3 ;
6614       J3 = 3*19-4*J2 ;
6615       S1++;
6616       S2++;
6617     }
6618   }
6619   for (I3=ceild(13*3+3,3);I3<=floord(15*3+2,3);I3++) {
6620     J3 = 19-(I2)-(I3) ;
6621     S1++;
6622     J3 = -(19)-2*(I2)+2*I3 ;
6623     S2++;
6624   }
6625   if ((5*19+1)%6 == 0) {
6626     I3 = (5*19+1)/6 ;
6627     J3 = 19-(I2)-(I3) ;
6628     S1++;
6629   }
6630   if (19%6 == 0) {
6631     for (I3=4*19/6;I3<=floord(13*19/6-1,3);I3++) {
6632       J3 = -(19)-2*(I2)+2*I3 ;
6633       S2++;
6634       J3 = 19-(I2)-(I3) ;
6635       S1++;
6636     }
6637     if (13*19%18 == 0) {
6638       I3 = 13*19/18 ;
6639       J1 = -2*(19)+3*I3 ;
6640       if ((2*19+J1)%3 == 0) {
6641         J2 = (2*19+J1)/3 ;
6642         J3 = 3*19-4*J2 ;
6643         S1++;
6644         S2++;
6645       }
6646     }
6647     for (I3=ceild(13*19/6+1,3);I3<=min(N1,5*19/6);I3++) {
6648       J3 = 19-(I2)-(I3) ;
6649       S1++;
6650       J3 = -(19)-2*(I2)+2*I3 ;
6651       S2++;
6652     }
6653   }
6654   for (I3=19-2*(4);I3<=floord(19+2*4-1,2);I3++) {
6655     J3 = 19-(I2)-(I3) ;
6656     S1++;
6657   }
6658   for (I3=ceild(19+2*4,2);I3<=floord(2*19+4-1,3);I3++) {
6659     J3 = -(19)-2*(I2)+2*I3 ;
6660     S2++;
6661     J3 = 19-(I2)-(I3) ;
6662     S1++;
6663   }
6664   if ((2*19+4)%3 == 0) {
6665     I3 = (2*19+4)/3 ;
6666     J1 = -2*(19)+3*I3 ;
6667     if ((2*19+J1)%3 == 0) {
6668       J2 = (2*19+J1)/3 ;
6669       J3 = 3*19-4*J2 ;
6670       S1++;
6671       S2++;
6672     }
6673   }
6674   for (I3=ceild(2*19+4+1,3);I3<=19-(4);I3++) {
6675     J3 = 19-(I2)-(I3) ;
6676     S1++;
6677     J3 = -(19)-2*(I2)+2*I3 ;
6678     S2++;
6679   }
6680   for (I3=19-(4)+1;I3<=min(N1,floord(2*19+3*4,3));I3++) {
6681     J3 = -(19)-2*(I2)+2*I3 ;
6682     S2++;
6683   }
6684   if (9%2 == 0) {
6685     for (I3=2*9/2+1;I3<=3*9/2;I3++) {
6686       J3 = 19-(I2)-(I3) ;
6687       S1++;
6688     }
6689     if ((9*19-1)%12 == 0) {
6690       I3 = (9*19-1)/12 ;
6691       J1 = -2*(19)+3*I3 ;
6692       if ((2*19+J1)%3 == 0) {
6693         J2 = (2*19+J1)/3 ;
6694         J3 = 3*19-4*J2 ;
6695         S1++;
6696         S2++;
6697       }
6698     }
6699     if ((3*19+1)%4 == 0) {
6700       I3 = (3*19+1)/4 ;
6701       J3 = 19-(I2)-(I3) ;
6702       S1++;
6703       J3 = -(19)-2*(I2)+2*I3 ;
6704       S2++;
6705     }
6706     for (I3=3*9/2+2;I3<=min(N1,floord(11*9/2+2,3));I3++) {
6707       J3 = -(19)-2*(I2)+2*I3 ;
6708       S2++;
6709     }
6710   }
6711   if (19%4 == 0) {
6712     for (I3=2*19/4;I3<=floord(6*19/4-1,2);I3++) {
6713       J3 = 19-(I2)-(I3) ;
6714       S1++;
6715     }
6716     if (3*19%4 == 0) {
6717       I3 = 3*19/4 ;
6718       J1 = -2*(19)+3*I3 ;
6719       if ((2*19+J1)%3 == 0) {
6720         J2 = (2*19+J1)/3 ;
6721         J3 = 3*19-4*J2 ;
6722         S1++;
6723         S2++;
6724       }
6725     }
6726     for (I3=3*19/4+1;I3<=min(N1,floord(11*19/4,3));I3++) {
6727       J3 = -(19)-2*(I2)+2*I3 ;
6728       S2++;
6729     }
6730   }
6731   for (I2=5;I2<=6;I2++) {
6732     for (I3=max(max(1,ceild(19-I2,2)),19-2*I2);I3<=19-I2;I3++) {
6733       J3 = 19-(I2)-(I3) ;
6734       S1++;
6735     }
6736     for (I3=max(19-I2+1,ceild(19+2*I2,2));I3<=min(N1,floord(2*19+3*I2,3));I3++) {
6737       J3 = -(19)-2*(I2)+2*I3 ;
6738       S2++;
6739     }
6740   }
6741   for (I2=7;I2<=16;I2++) {
6742     for (I3=max(max(ceild(19-I2,2),19-2*I2),1);I3<=min(19-I2,N1);I3++) {
6743       J3 = 19-(I2)-(I3) ;
6744       S1++;
6745     }
6746   }
6748 if ((N1 >= 17) && (N1 <= 16)) {
6749   if ((4*N1-5)%3 == 0) {
6750     I1 = (4*N1-5)/3 ;
6751     for (I2=1;I2<=floord(N1-8,6);I2++) {
6752       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
6753         J3 = -I1-2*(I2)+2*I3 ;
6754         S2++;
6755       }
6756     }
6757     for (I2=ceild(N1-5,6);I2<=floord(4*N1-8,27);I2++) {
6758       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
6759         J3 = -I1-2*(I2)+2*I3 ;
6760         S2++;
6761       }
6762       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
6763         J3 = I1-(I2)-(I3) ;
6764         S1++;
6765       }
6766     }
6767     for (I2=ceild(4*N1-5,27);I2<=floord(N1+7,9);I2++) {
6768       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
6769         J3 = -I1-2*(I2)+2*I3 ;
6770         S2++;
6771       }
6772       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
6773         J3 = I1-(I2)-(I3) ;
6774         S1++;
6775         J3 = -I1-2*(I2)+2*I3 ;
6776         S2++;
6777       }
6778       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
6779         J3 = I1-(I2)-(I3) ;
6780         S1++;
6781       }
6782     }
6783     for (I2=ceild(4*N1-2,21);I2<=floord(4*N1-11,18);I2++) {
6784       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
6785         J3 = -I1-2*(I2)+2*I3 ;
6786         S2++;
6787       }
6788       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
6789         J3 = -I1-2*(I2)+2*I3 ;
6790         S2++;
6791         J3 = I1-(I2)-(I3) ;
6792         S1++;
6793       }
6794       if ((2*I1+I2)%3 == 0) {
6795         I3 = (2*I1+I2)/3 ;
6796         J1 = -2*I1+3*I3 ;
6797         if ((2*I1+J1)%3 == 0) {
6798           J2 = (2*I1+J1)/3 ;
6799           J3 = 3*I1-4*J2 ;
6800           S1++;
6801           S2++;
6802         }
6803       }
6804       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
6805         J3 = I1-(I2)-(I3) ;
6806         S1++;
6807         J3 = -I1-2*(I2)+2*I3 ;
6808         S2++;
6809       }
6810     }
6811     if ((4*N1-5)%18 == 0) {
6812       I2 = (4*N1-5)/18 ;
6813       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
6814         J3 = -I1-2*(I2)+2*I3 ;
6815         S2++;
6816         J3 = I1-(I2)-(I3) ;
6817         S1++;
6818       }
6819       if (13*I1%18 == 0) {
6820         I3 = 13*I1/18 ;
6821         J1 = -2*I1+3*I3 ;
6822         if ((2*I1+J1)%3 == 0) {
6823           J2 = (2*I1+J1)/3 ;
6824           J3 = 3*I1-4*J2 ;
6825           S1++;
6826           S2++;
6827         }
6828       }
6829       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
6830         J3 = I1-(I2)-(I3) ;
6831         S1++;
6832         J3 = -I1-2*(I2)+2*I3 ;
6833         S2++;
6834       }
6835     }
6836     for (I2=ceild(2*N1-1,9);I2<=floord(N1-5,3);I2++) {
6837       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
6838         J3 = I1-(I2)-(I3) ;
6839         S1++;
6840       }
6841       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
6842         J3 = -I1-2*(I2)+2*I3 ;
6843         S2++;
6844         J3 = I1-(I2)-(I3) ;
6845         S1++;
6846       }
6847       if ((2*I1+I2)%3 == 0) {
6848         I3 = (2*I1+I2)/3 ;
6849         J1 = -2*I1+3*I3 ;
6850         if ((2*I1+J1)%3 == 0) {
6851           J2 = (2*I1+J1)/3 ;
6852           J3 = 3*I1-4*J2 ;
6853           S1++;
6854           S2++;
6855         }
6856       }
6857       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
6858         J3 = I1-(I2)-(I3) ;
6859         S1++;
6860         J3 = -I1-2*(I2)+2*I3 ;
6861         S2++;
6862       }
6863     }
6864     if ((N1-2)%3 == 0) {
6865       I2 = (N1-2)/3 ;
6866       for (I3=2*I2+1;I3<=3*I2;I3++) {
6867         J3 = I1-(I2)-(I3) ;
6868         S1++;
6869       }
6870       if ((9*I1-1)%12 == 0) {
6871         I3 = (9*I1-1)/12 ;
6872         J1 = -2*I1+3*I3 ;
6873         if ((2*I1+J1)%3 == 0) {
6874           J2 = (2*I1+J1)/3 ;
6875           J3 = 3*I1-4*J2 ;
6876           S1++;
6877           S2++;
6878         }
6879       }
6880       if ((3*I1+1)%4 == 0) {
6881         I3 = (3*I1+1)/4 ;
6882         J3 = I1-(I2)-(I3) ;
6883         S1++;
6884         J3 = -I1-2*(I2)+2*I3 ;
6885         S2++;
6886       }
6887       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
6888         J3 = -I1-2*(I2)+2*I3 ;
6889         S2++;
6890       }
6891     }
6892     if ((4*N1-5)%12 == 0) {
6893       I2 = (4*N1-5)/12 ;
6894       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
6895         J3 = I1-(I2)-(I3) ;
6896         S1++;
6897       }
6898       if (3*I1%4 == 0) {
6899         I3 = 3*I1/4 ;
6900         J1 = -2*I1+3*I3 ;
6901         if ((2*I1+J1)%3 == 0) {
6902           J2 = (2*I1+J1)/3 ;
6903           J3 = 3*I1-4*J2 ;
6904           S1++;
6905           S2++;
6906         }
6907       }
6908       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
6909         J3 = -I1-2*(I2)+2*I3 ;
6910         S2++;
6911       }
6912     }
6913     for (I2=ceild(2*N1-1,6);I2<=floord(2*N1+5,6);I2++) {
6914       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
6915         J3 = I1-(I2)-(I3) ;
6916         S1++;
6917       }
6918       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
6919         J3 = -I1-2*(I2)+2*I3 ;
6920         S2++;
6921       }
6922     }
6923     for (I2=ceild(N1+4,3);I2<=N1;I2++) {
6924       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
6925         J3 = I1-(I2)-(I3) ;
6926         S1++;
6927       }
6928     }
6929   }
6931 if (N1 == 9) {
6932   for (I3=ceild(12+2*1,2);I3<=min(N1,floord(2*12+3*1,3));I3++) {
6933     J3 = -(12)-2*(I2)+2*I3 ;
6934     S2++;
6935   }
6936   for (I2=2;I2<=1;I2++) {
6937     for (I3=ceild(12+2*I2,2);I3<=12-2*I2-1;I3++) {
6938       J3 = -(12)-2*(I2)+2*I3 ;
6939       S2++;
6940     }
6941     for (I3=12-2*I2;I3<=N1;I3++) {
6942       J3 = 12-(I2)-(I3) ;
6943       S1++;
6944       J3 = -(12)-2*(I2)+2*I3 ;
6945       S2++;
6946     }
6947   }
6948   for (I3=4*2;I3<=floord(13*2-1,3);I3++) {
6949     J3 = -(12)-2*(I2)+2*I3 ;
6950     S2++;
6951     J3 = 12-(I2)-(I3) ;
6952     S1++;
6953   }
6954   if (13*12%18 == 0) {
6955     I3 = 13*12/18 ;
6956     J1 = -2*(12)+3*I3 ;
6957     if ((2*12+J1)%3 == 0) {
6958       J2 = (2*12+J1)/3 ;
6959       J3 = 3*12-4*J2 ;
6960       S1++;
6961       S2++;
6962     }
6963   }
6964   for (I3=ceild(13*2+1,3);I3<=min(N1,5*2);I3++) {
6965     J3 = 12-(I2)-(I3) ;
6966     S1++;
6967     J3 = -(12)-2*(I2)+2*I3 ;
6968     S2++;
6969   }
6970   for (I3=ceild(2*N1,3);I3<=floord(2*N1-1,2);I3++) {
6971     J3 = 12-(I2)-(I3) ;
6972     S1++;
6973   }
6974   J1 = -2*(12)+3*N1 ;
6975   if ((2*12+J1)%3 == 0) {
6976     J2 = (2*12+J1)/3 ;
6977     J3 = 3*12-4*J2 ;
6978     S1++;
6979     S2++;
6980   }
6981   for (I2=4;I2<=9;I2++) {
6982     for (I3=max(max(ceild(12-I2,2),12-2*I2),1);I3<=min(12-I2,N1);I3++) {
6983       J3 = 12-(I2)-(I3) ;
6984       S1++;
6985     }
6986   }
6988 for (I1=max(20,ceild(2*N1+3,3));I1<=N1+2;I1++) {
6989   for (I2=1;I2<=floord(I1-1,9);I2++) {
6990     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
6991       J3 = -I1-2*(I2)+2*I3 ;
6992       S2++;
6993     }
6994     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
6995       J3 = I1-(I2)-(I3) ;
6996       S1++;
6997     }
6998   }
6999   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
7000     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
7001       J3 = -I1-2*(I2)+2*I3 ;
7002       S2++;
7003     }
7004     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
7005       J3 = I1-(I2)-(I3) ;
7006       S1++;
7007       J3 = -I1-2*(I2)+2*I3 ;
7008       S2++;
7009     }
7010     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
7011       J3 = I1-(I2)-(I3) ;
7012       S1++;
7013     }
7014   }
7015   if (I1%7 == 0) {
7016     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
7017       J3 = -I1-2*(I2)+2*I3 ;
7018       S2++;
7019     }
7020     if (5*I1%7 == 0) {
7021       I3 = 5*I1/7 ;
7022       J1 = -2*I1+3*I3 ;
7023       if ((2*I1+J1)%3 == 0) {
7024         J2 = (2*I1+J1)/3 ;
7025         J3 = 3*I1-4*J2 ;
7026         S1++;
7027         S2++;
7028       }
7029     }
7030     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
7031       J3 = I1-(I2)-(I3) ;
7032       S1++;
7033       J3 = -I1-2*(I2)+2*I3 ;
7034       S2++;
7035     }
7036     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
7037       J3 = I1-(I2)-(I3) ;
7038       S1++;
7039     }
7040   }
7041   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
7042     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
7043       J3 = -I1-2*(I2)+2*I3 ;
7044       S2++;
7045     }
7046     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
7047       J3 = -I1-2*(I2)+2*I3 ;
7048       S2++;
7049       J3 = I1-(I2)-(I3) ;
7050       S1++;
7051     }
7052     if ((2*I1+I2)%3 == 0) {
7053       I3 = (2*I1+I2)/3 ;
7054       J1 = -2*I1+3*I3 ;
7055       if ((2*I1+J1)%3 == 0) {
7056         J2 = (2*I1+J1)/3 ;
7057         J3 = 3*I1-4*J2 ;
7058         S1++;
7059         S2++;
7060       }
7061     }
7062     for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
7063       J3 = I1-(I2)-(I3) ;
7064       S1++;
7065       J3 = -I1-2*(I2)+2*I3 ;
7066       S2++;
7067     }
7068     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
7069       J3 = I1-(I2)-(I3) ;
7070       S1++;
7071     }
7072   }
7073   if ((I1-1)%6 == 0) {
7074     I2 = (I1-1)/6 ;
7075     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
7076       J3 = -I1-2*(I2)+2*I3 ;
7077       S2++;
7078       J3 = I1-(I2)-(I3) ;
7079       S1++;
7080     }
7081     if ((13*I1-1)%18 == 0) {
7082       I3 = (13*I1-1)/18 ;
7083       J1 = -2*I1+3*I3 ;
7084       if ((2*I1+J1)%3 == 0) {
7085         J2 = (2*I1+J1)/3 ;
7086         J3 = 3*I1-4*J2 ;
7087         S1++;
7088         S2++;
7089       }
7090     }
7091     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
7092       J3 = I1-(I2)-(I3) ;
7093       S1++;
7094       J3 = -I1-2*(I2)+2*I3 ;
7095       S2++;
7096     }
7097     if ((5*I1+1)%6 == 0) {
7098       I3 = (5*I1+1)/6 ;
7099       J3 = I1-(I2)-(I3) ;
7100       S1++;
7101     }
7102   }
7103   if (I1%6 == 0) {
7104     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
7105       J3 = -I1-2*(I2)+2*I3 ;
7106       S2++;
7107       J3 = I1-(I2)-(I3) ;
7108       S1++;
7109     }
7110     if (13*I1%18 == 0) {
7111       I3 = 13*I1/18 ;
7112       J1 = -2*I1+3*I3 ;
7113       if ((2*I1+J1)%3 == 0) {
7114         J2 = (2*I1+J1)/3 ;
7115         J3 = 3*I1-4*J2 ;
7116         S1++;
7117         S2++;
7118       }
7119     }
7120     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
7121       J3 = I1-(I2)-(I3) ;
7122       S1++;
7123       J3 = -I1-2*(I2)+2*I3 ;
7124       S2++;
7125     }
7126   }
7127   for (I2=ceild(I1+1,6);I2<=floord(I1+2,6);I2++) {
7128     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
7129       J3 = I1-(I2)-(I3) ;
7130       S1++;
7131     }
7132     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
7133       J3 = -I1-2*(I2)+2*I3 ;
7134       S2++;
7135       J3 = I1-(I2)-(I3) ;
7136       S1++;
7137     }
7138     if ((2*I1+I2)%3 == 0) {
7139       I3 = (2*I1+I2)/3 ;
7140       J1 = -2*I1+3*I3 ;
7141       if ((2*I1+J1)%3 == 0) {
7142         J2 = (2*I1+J1)/3 ;
7143         J3 = 3*I1-4*J2 ;
7144         S1++;
7145         S2++;
7146       }
7147     }
7148     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
7149       J3 = I1-(I2)-(I3) ;
7150       S1++;
7151       J3 = -I1-2*(I2)+2*I3 ;
7152       S2++;
7153     }
7154   }
7155   for (I2=ceild(I1+3,6);I2<=floord(I1-2,4);I2++) {
7156     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
7157       J3 = I1-(I2)-(I3) ;
7158       S1++;
7159     }
7160     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
7161       J3 = -I1-2*(I2)+2*I3 ;
7162       S2++;
7163       J3 = I1-(I2)-(I3) ;
7164       S1++;
7165     }
7166     if ((2*I1+I2)%3 == 0) {
7167       I3 = (2*I1+I2)/3 ;
7168       J1 = -2*I1+3*I3 ;
7169       if ((2*I1+J1)%3 == 0) {
7170         J2 = (2*I1+J1)/3 ;
7171         J3 = 3*I1-4*J2 ;
7172         S1++;
7173         S2++;
7174       }
7175     }
7176     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
7177       J3 = I1-(I2)-(I3) ;
7178       S1++;
7179       J3 = -I1-2*(I2)+2*I3 ;
7180       S2++;
7181     }
7182     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
7183       J3 = -I1-2*(I2)+2*I3 ;
7184       S2++;
7185     }
7186   }
7187   if ((I1-1)%4 == 0) {
7188     I2 = (I1-1)/4 ;
7189     for (I3=2*I2+1;I3<=3*I2;I3++) {
7190       J3 = I1-(I2)-(I3) ;
7191       S1++;
7192     }
7193     if ((9*I1-1)%12 == 0) {
7194       I3 = (9*I1-1)/12 ;
7195       J1 = -2*I1+3*I3 ;
7196       if ((2*I1+J1)%3 == 0) {
7197         J2 = (2*I1+J1)/3 ;
7198         J3 = 3*I1-4*J2 ;
7199         S1++;
7200         S2++;
7201       }
7202     }
7203     if ((3*I1+1)%4 == 0) {
7204       I3 = (3*I1+1)/4 ;
7205       J3 = I1-(I2)-(I3) ;
7206       S1++;
7207       J3 = -I1-2*(I2)+2*I3 ;
7208       S2++;
7209     }
7210     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
7211       J3 = -I1-2*(I2)+2*I3 ;
7212       S2++;
7213     }
7214   }
7215   if (I1%4 == 0) {
7216     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
7217       J3 = I1-(I2)-(I3) ;
7218       S1++;
7219     }
7220     if (3*I1%4 == 0) {
7221       I3 = 3*I1/4 ;
7222       J1 = -2*I1+3*I3 ;
7223       if ((2*I1+J1)%3 == 0) {
7224         J2 = (2*I1+J1)/3 ;
7225         J3 = 3*I1-4*J2 ;
7226         S1++;
7227         S2++;
7228       }
7229     }
7230     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
7231       J3 = -I1-2*(I2)+2*I3 ;
7232       S2++;
7233     }
7234   }
7235   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
7236     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
7237       J3 = I1-(I2)-(I3) ;
7238       S1++;
7239     }
7240     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
7241       J3 = -I1-2*(I2)+2*I3 ;
7242       S2++;
7243     }
7244   }
7245   for (I2=ceild(-I1+2*N1+1,2);I2<=min(N1,I1-1);I2++) {
7246     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
7247       J3 = I1-(I2)-(I3) ;
7248       S1++;
7249     }
7250   }
7252 for (I1=max(14,ceild(6*N1-3,5));I1<=N1+2;I1++) {
7253   for (I2=1;I2<=floord(I1-1,9);I2++) {
7254     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
7255       J3 = -I1-2*(I2)+2*I3 ;
7256       S2++;
7257     }
7258     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
7259       J3 = I1-(I2)-(I3) ;
7260       S1++;
7261     }
7262   }
7263   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
7264     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
7265       J3 = -I1-2*(I2)+2*I3 ;
7266       S2++;
7267     }
7268     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
7269       J3 = I1-(I2)-(I3) ;
7270       S1++;
7271       J3 = -I1-2*(I2)+2*I3 ;
7272       S2++;
7273     }
7274     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
7275       J3 = I1-(I2)-(I3) ;
7276       S1++;
7277     }
7278   }
7279   if (I1%7 == 0) {
7280     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
7281       J3 = -I1-2*(I2)+2*I3 ;
7282       S2++;
7283     }
7284     if (5*I1%7 == 0) {
7285       I3 = 5*I1/7 ;
7286       J1 = -2*I1+3*I3 ;
7287       if ((2*I1+J1)%3 == 0) {
7288         J2 = (2*I1+J1)/3 ;
7289         J3 = 3*I1-4*J2 ;
7290         S1++;
7291         S2++;
7292       }
7293     }
7294     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
7295       J3 = I1-(I2)-(I3) ;
7296       S1++;
7297       J3 = -I1-2*(I2)+2*I3 ;
7298       S2++;
7299     }
7300     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
7301       J3 = I1-(I2)-(I3) ;
7302       S1++;
7303     }
7304   }
7305   if ((I1-1)%6 == 0) {
7306     I2 = (I1-1)/6 ;
7307     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
7308       J3 = -I1-2*(I2)+2*I3 ;
7309       S2++;
7310       J3 = I1-(I2)-(I3) ;
7311       S1++;
7312     }
7313     if ((13*I1-1)%18 == 0) {
7314       I3 = (13*I1-1)/18 ;
7315       J1 = -2*I1+3*I3 ;
7316       if ((2*I1+J1)%3 == 0) {
7317         J2 = (2*I1+J1)/3 ;
7318         J3 = 3*I1-4*J2 ;
7319         S1++;
7320         S2++;
7321       }
7322     }
7323     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
7324       J3 = I1-(I2)-(I3) ;
7325       S1++;
7326       J3 = -I1-2*(I2)+2*I3 ;
7327       S2++;
7328     }
7329     if ((5*I1+1)%6 == 0) {
7330       I3 = (5*I1+1)/6 ;
7331       J3 = I1-(I2)-(I3) ;
7332       S1++;
7333     }
7334   }
7335   if (I1%6 == 0) {
7336     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
7337       J3 = -I1-2*(I2)+2*I3 ;
7338       S2++;
7339       J3 = I1-(I2)-(I3) ;
7340       S1++;
7341     }
7342     if (13*I1%18 == 0) {
7343       I3 = 13*I1/18 ;
7344       J1 = -2*I1+3*I3 ;
7345       if ((2*I1+J1)%3 == 0) {
7346         J2 = (2*I1+J1)/3 ;
7347         J3 = 3*I1-4*J2 ;
7348         S1++;
7349         S2++;
7350       }
7351     }
7352     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
7353       J3 = I1-(I2)-(I3) ;
7354       S1++;
7355       J3 = -I1-2*(I2)+2*I3 ;
7356       S2++;
7357     }
7358   }
7359   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
7360     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
7361       J3 = I1-(I2)-(I3) ;
7362       S1++;
7363     }
7364     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
7365       J3 = -I1-2*(I2)+2*I3 ;
7366       S2++;
7367       J3 = I1-(I2)-(I3) ;
7368       S1++;
7369     }
7370     if ((2*I1+I2)%3 == 0) {
7371       I3 = (2*I1+I2)/3 ;
7372       J1 = -2*I1+3*I3 ;
7373       if ((2*I1+J1)%3 == 0) {
7374         J2 = (2*I1+J1)/3 ;
7375         J3 = 3*I1-4*J2 ;
7376         S1++;
7377         S2++;
7378       }
7379     }
7380     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
7381       J3 = I1-(I2)-(I3) ;
7382       S1++;
7383       J3 = -I1-2*(I2)+2*I3 ;
7384       S2++;
7385     }
7386     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
7387       J3 = -I1-2*(I2)+2*I3 ;
7388       S2++;
7389     }
7390   }
7391   if ((I1-1)%4 == 0) {
7392     I2 = (I1-1)/4 ;
7393     for (I3=2*I2+1;I3<=3*I2;I3++) {
7394       J3 = I1-(I2)-(I3) ;
7395       S1++;
7396     }
7397     if ((9*I1-1)%12 == 0) {
7398       I3 = (9*I1-1)/12 ;
7399       J1 = -2*I1+3*I3 ;
7400       if ((2*I1+J1)%3 == 0) {
7401         J2 = (2*I1+J1)/3 ;
7402         J3 = 3*I1-4*J2 ;
7403         S1++;
7404         S2++;
7405       }
7406     }
7407     if ((3*I1+1)%4 == 0) {
7408       I3 = (3*I1+1)/4 ;
7409       J3 = I1-(I2)-(I3) ;
7410       S1++;
7411       J3 = -I1-2*(I2)+2*I3 ;
7412       S2++;
7413     }
7414     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
7415       J3 = -I1-2*(I2)+2*I3 ;
7416       S2++;
7417     }
7418   }
7419   if (I1%4 == 0) {
7420     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
7421       J3 = I1-(I2)-(I3) ;
7422       S1++;
7423     }
7424     if (3*I1%4 == 0) {
7425       I3 = 3*I1/4 ;
7426       J1 = -2*I1+3*I3 ;
7427       if ((2*I1+J1)%3 == 0) {
7428         J2 = (2*I1+J1)/3 ;
7429         J3 = 3*I1-4*J2 ;
7430         S1++;
7431         S2++;
7432       }
7433     }
7434     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
7435       J3 = -I1-2*(I2)+2*I3 ;
7436       S2++;
7437     }
7438   }
7439   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
7440     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
7441       J3 = I1-(I2)-(I3) ;
7442       S1++;
7443     }
7444     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
7445       J3 = -I1-2*(I2)+2*I3 ;
7446       S2++;
7447     }
7448   }
7449   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
7450     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
7451       J3 = I1-(I2)-(I3) ;
7452       S1++;
7453     }
7454   }
7456 for (I1=N1+3;I1<=floord(6*N1-4,5);I1++) {
7457   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
7458     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
7459       J3 = -I1-2*(I2)+2*I3 ;
7460       S2++;
7461     }
7462   }
7463   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
7464     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
7465       J3 = -I1-2*(I2)+2*I3 ;
7466       S2++;
7467     }
7468     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
7469       J3 = I1-(I2)-(I3) ;
7470       S1++;
7471     }
7472   }
7473   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
7474     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
7475       J3 = -I1-2*(I2)+2*I3 ;
7476       S2++;
7477     }
7478     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
7479       J3 = I1-(I2)-(I3) ;
7480       S1++;
7481       J3 = -I1-2*(I2)+2*I3 ;
7482       S2++;
7483     }
7484     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
7485       J3 = I1-(I2)-(I3) ;
7486       S1++;
7487     }
7488   }
7489   if (I1%7 == 0) {
7490     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
7491       J3 = -I1-2*(I2)+2*I3 ;
7492       S2++;
7493     }
7494     if (5*I1%7 == 0) {
7495       I3 = 5*I1/7 ;
7496       J1 = -2*I1+3*I3 ;
7497       if ((2*I1+J1)%3 == 0) {
7498         J2 = (2*I1+J1)/3 ;
7499         J3 = 3*I1-4*J2 ;
7500         S1++;
7501         S2++;
7502       }
7503     }
7504     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
7505       J3 = I1-(I2)-(I3) ;
7506       S1++;
7507       J3 = -I1-2*(I2)+2*I3 ;
7508       S2++;
7509     }
7510     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
7511       J3 = I1-(I2)-(I3) ;
7512       S1++;
7513     }
7514   }
7515   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
7516     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
7517       J3 = -I1-2*(I2)+2*I3 ;
7518       S2++;
7519     }
7520     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
7521       J3 = -I1-2*(I2)+2*I3 ;
7522       S2++;
7523       J3 = I1-(I2)-(I3) ;
7524       S1++;
7525     }
7526     if ((2*I1+I2)%3 == 0) {
7527       I3 = (2*I1+I2)/3 ;
7528       J1 = -2*I1+3*I3 ;
7529       if ((2*I1+J1)%3 == 0) {
7530         J2 = (2*I1+J1)/3 ;
7531         J3 = 3*I1-4*J2 ;
7532         S1++;
7533         S2++;
7534       }
7535     }
7536     for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
7537       J3 = I1-(I2)-(I3) ;
7538       S1++;
7539       J3 = -I1-2*(I2)+2*I3 ;
7540       S2++;
7541     }
7542     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
7543       J3 = I1-(I2)-(I3) ;
7544       S1++;
7545     }
7546   }
7547   if ((I1-1)%6 == 0) {
7548     I2 = (I1-1)/6 ;
7549     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
7550       J3 = -I1-2*(I2)+2*I3 ;
7551       S2++;
7552       J3 = I1-(I2)-(I3) ;
7553       S1++;
7554     }
7555     if ((13*I1-1)%18 == 0) {
7556       I3 = (13*I1-1)/18 ;
7557       J1 = -2*I1+3*I3 ;
7558       if ((2*I1+J1)%3 == 0) {
7559         J2 = (2*I1+J1)/3 ;
7560         J3 = 3*I1-4*J2 ;
7561         S1++;
7562         S2++;
7563       }
7564     }
7565     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
7566       J3 = I1-(I2)-(I3) ;
7567       S1++;
7568       J3 = -I1-2*(I2)+2*I3 ;
7569       S2++;
7570     }
7571     if ((5*I1+1)%6 == 0) {
7572       I3 = (5*I1+1)/6 ;
7573       J3 = I1-(I2)-(I3) ;
7574       S1++;
7575     }
7576   }
7577   if (I1%6 == 0) {
7578     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
7579       J3 = -I1-2*(I2)+2*I3 ;
7580       S2++;
7581       J3 = I1-(I2)-(I3) ;
7582       S1++;
7583     }
7584     if (13*I1%18 == 0) {
7585       I3 = 13*I1/18 ;
7586       J1 = -2*I1+3*I3 ;
7587       if ((2*I1+J1)%3 == 0) {
7588         J2 = (2*I1+J1)/3 ;
7589         J3 = 3*I1-4*J2 ;
7590         S1++;
7591         S2++;
7592       }
7593     }
7594     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
7595       J3 = I1-(I2)-(I3) ;
7596       S1++;
7597       J3 = -I1-2*(I2)+2*I3 ;
7598       S2++;
7599     }
7600   }
7601   for (I2=max(ceild(I1+1,6),I1-N1+1);I2<=floord(I1+2,6);I2++) {
7602     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
7603       J3 = I1-(I2)-(I3) ;
7604       S1++;
7605     }
7606     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
7607       J3 = -I1-2*(I2)+2*I3 ;
7608       S2++;
7609       J3 = I1-(I2)-(I3) ;
7610       S1++;
7611     }
7612     if ((2*I1+I2)%3 == 0) {
7613       I3 = (2*I1+I2)/3 ;
7614       J1 = -2*I1+3*I3 ;
7615       if ((2*I1+J1)%3 == 0) {
7616         J2 = (2*I1+J1)/3 ;
7617         J3 = 3*I1-4*J2 ;
7618         S1++;
7619         S2++;
7620       }
7621     }
7622     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
7623       J3 = I1-(I2)-(I3) ;
7624       S1++;
7625       J3 = -I1-2*(I2)+2*I3 ;
7626       S2++;
7627     }
7628   }
7629   for (I2=ceild(I1+3,6);I2<=floord(I1-2,4);I2++) {
7630     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
7631       J3 = I1-(I2)-(I3) ;
7632       S1++;
7633     }
7634     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
7635       J3 = -I1-2*(I2)+2*I3 ;
7636       S2++;
7637       J3 = I1-(I2)-(I3) ;
7638       S1++;
7639     }
7640     if ((2*I1+I2)%3 == 0) {
7641       I3 = (2*I1+I2)/3 ;
7642       J1 = -2*I1+3*I3 ;
7643       if ((2*I1+J1)%3 == 0) {
7644         J2 = (2*I1+J1)/3 ;
7645         J3 = 3*I1-4*J2 ;
7646         S1++;
7647         S2++;
7648       }
7649     }
7650     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
7651       J3 = I1-(I2)-(I3) ;
7652       S1++;
7653       J3 = -I1-2*(I2)+2*I3 ;
7654       S2++;
7655     }
7656     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
7657       J3 = -I1-2*(I2)+2*I3 ;
7658       S2++;
7659     }
7660   }
7661   if ((I1-1)%4 == 0) {
7662     I2 = (I1-1)/4 ;
7663     for (I3=2*I2+1;I3<=3*I2;I3++) {
7664       J3 = I1-(I2)-(I3) ;
7665       S1++;
7666     }
7667     if ((9*I1-1)%12 == 0) {
7668       I3 = (9*I1-1)/12 ;
7669       J1 = -2*I1+3*I3 ;
7670       if ((2*I1+J1)%3 == 0) {
7671         J2 = (2*I1+J1)/3 ;
7672         J3 = 3*I1-4*J2 ;
7673         S1++;
7674         S2++;
7675       }
7676     }
7677     if ((3*I1+1)%4 == 0) {
7678       I3 = (3*I1+1)/4 ;
7679       J3 = I1-(I2)-(I3) ;
7680       S1++;
7681       J3 = -I1-2*(I2)+2*I3 ;
7682       S2++;
7683     }
7684     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
7685       J3 = -I1-2*(I2)+2*I3 ;
7686       S2++;
7687     }
7688   }
7689   if (I1%4 == 0) {
7690     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
7691       J3 = I1-(I2)-(I3) ;
7692       S1++;
7693     }
7694     if (3*I1%4 == 0) {
7695       I3 = 3*I1/4 ;
7696       J1 = -2*I1+3*I3 ;
7697       if ((2*I1+J1)%3 == 0) {
7698         J2 = (2*I1+J1)/3 ;
7699         J3 = 3*I1-4*J2 ;
7700         S1++;
7701         S2++;
7702       }
7703     }
7704     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
7705       J3 = -I1-2*(I2)+2*I3 ;
7706       S2++;
7707     }
7708   }
7709   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
7710     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
7711       J3 = I1-(I2)-(I3) ;
7712       S1++;
7713     }
7714     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
7715       J3 = -I1-2*(I2)+2*I3 ;
7716       S2++;
7717     }
7718   }
7719   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
7720     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
7721       J3 = I1-(I2)-(I3) ;
7722       S1++;
7723     }
7724   }
7726 if (N1 == 16) {
7727   for (I3=ceild(20+2*1,2);I3<=min(N1,floord(2*20+3*1,3));I3++) {
7728     J3 = -(20)-2*(I2)+2*I3 ;
7729     S2++;
7730   }
7731   for (I3=ceild(20+2*2,2);I3<=min(20-2*(2)-1,floord(2*20+3*2,3));I3++) {
7732     J3 = -(20)-2*(I2)+2*I3 ;
7733     S2++;
7734   }
7735   for (I3=20-2*(2);I3<=min(N1,20-(2));I3++) {
7736     J3 = 20-(I2)-(I3) ;
7737     S1++;
7738   }
7739   for (I2=3;I2<=2;I2++) {
7740     for (I3=ceild(20+2*I2,2);I3<=20-2*I2-1;I3++) {
7741       J3 = -(20)-2*(I2)+2*I3 ;
7742       S2++;
7743     }
7744     for (I3=20-2*I2;I3<=floord(2*20+3*I2,3);I3++) {
7745       J3 = 20-(I2)-(I3) ;
7746       S1++;
7747       J3 = -(20)-2*(I2)+2*I3 ;
7748       S2++;
7749     }
7750     for (I3=ceild(2*20+3*I2+1,3);I3<=min(N1,20-I2);I3++) {
7751       J3 = 20-(I2)-(I3) ;
7752       S1++;
7753     }
7754   }
7755   for (I2=3;I2<=2;I2++) {
7756     for (I3=ceild(20+2*I2,2);I3<=20-2*I2-1;I3++) {
7757       J3 = -(20)-2*(I2)+2*I3 ;
7758       S2++;
7759     }
7760     for (I3=20-2*I2;I3<=N1;I3++) {
7761       J3 = 20-(I2)-(I3) ;
7762       S1++;
7763       J3 = -(20)-2*(I2)+2*I3 ;
7764       S2++;
7765     }
7766   }
7767   if (20%7 == 0) {
7768     for (I3=ceild(9*20/7,2);I3<=5*20/7-1;I3++) {
7769       J3 = -(20)-2*(I2)+2*I3 ;
7770       S2++;
7771     }
7772     if (5*20%7 == 0) {
7773       I3 = 5*20/7 ;
7774       J1 = -2*(20)+3*I3 ;
7775       if ((2*20+J1)%3 == 0) {
7776         J2 = (2*20+J1)/3 ;
7777         J3 = 3*20-4*J2 ;
7778         S1++;
7779         S2++;
7780       }
7781     }
7782     for (I3=ceild(15*20/7+1,3);I3<=N1;I3++) {
7783       J3 = 20-(I2)-(I3) ;
7784       S1++;
7785       J3 = -(20)-2*(I2)+2*I3 ;
7786       S2++;
7787     }
7788   }
7789   for (I3=ceild(20+2*3,2);I3<=20-2*(3)-1;I3++) {
7790     J3 = -(20)-2*(I2)+2*I3 ;
7791     S2++;
7792   }
7793   for (I3=20-2*(3);I3<=floord(2*20+3-1,3);I3++) {
7794     J3 = -(20)-2*(I2)+2*I3 ;
7795     S2++;
7796     J3 = 20-(I2)-(I3) ;
7797     S1++;
7798   }
7799   if ((2*20+3)%3 == 0) {
7800     I3 = (2*20+3)/3 ;
7801     J1 = -2*(20)+3*I3 ;
7802     if ((2*20+J1)%3 == 0) {
7803       J2 = (2*20+J1)/3 ;
7804       J3 = 3*20-4*J2 ;
7805       S1++;
7806       S2++;
7807     }
7808   }
7809   for (I3=ceild(2*20+3+1,3);I3<=N1;I3++) {
7810     J3 = 20-(I2)-(I3) ;
7811     S1++;
7812     J3 = -(20)-2*(I2)+2*I3 ;
7813     S2++;
7814   }
7815   if (10%3 == 0) {
7816     for (I3=4*10/3;I3<=floord(13*10/3-1,3);I3++) {
7817       J3 = -(20)-2*(I2)+2*I3 ;
7818       S2++;
7819       J3 = 20-(I2)-(I3) ;
7820       S1++;
7821     }
7822     if (13*20%18 == 0) {
7823       I3 = 13*20/18 ;
7824       J1 = -2*(20)+3*I3 ;
7825       if ((2*20+J1)%3 == 0) {
7826         J2 = (2*20+J1)/3 ;
7827         J3 = 3*20-4*J2 ;
7828         S1++;
7829         S2++;
7830       }
7831     }
7832     for (I3=ceild(13*10/3+1,3);I3<=min(N1,5*10/3);I3++) {
7833       J3 = 20-(I2)-(I3) ;
7834       S1++;
7835       J3 = -(20)-2*(I2)+2*I3 ;
7836       S2++;
7837     }
7838   }
7839   for (I3=20-2*(4);I3<=floord(20+2*4-1,2);I3++) {
7840     J3 = 20-(I2)-(I3) ;
7841     S1++;
7842   }
7843   for (I3=ceild(20+2*4,2);I3<=floord(2*20+4-1,3);I3++) {
7844     J3 = -(20)-2*(I2)+2*I3 ;
7845     S2++;
7846     J3 = 20-(I2)-(I3) ;
7847     S1++;
7848   }
7849   if ((2*20+4)%3 == 0) {
7850     I3 = (2*20+4)/3 ;
7851     J1 = -2*(20)+3*I3 ;
7852     if ((2*20+J1)%3 == 0) {
7853       J2 = (2*20+J1)/3 ;
7854       J3 = 3*20-4*J2 ;
7855       S1++;
7856       S2++;
7857     }
7858   }
7859   for (I3=ceild(2*20+4+1,3);I3<=N1;I3++) {
7860     J3 = 20-(I2)-(I3) ;
7861     S1++;
7862     J3 = -(20)-2*(I2)+2*I3 ;
7863     S2++;
7864   }
7865   for (I3=2*5;I3<=floord(6*5-1,2);I3++) {
7866     J3 = 20-(I2)-(I3) ;
7867     S1++;
7868   }
7869   if (3*20%4 == 0) {
7870     I3 = 3*20/4 ;
7871     J1 = -2*(20)+3*I3 ;
7872     if ((2*20+J1)%3 == 0) {
7873       J2 = (2*20+J1)/3 ;
7874       J3 = 3*20-4*J2 ;
7875       S1++;
7876       S2++;
7877     }
7878   }
7879   for (I3=3*5+1;I3<=min(N1,floord(11*5,3));I3++) {
7880     J3 = -(20)-2*(I2)+2*I3 ;
7881     S2++;
7882   }
7883   for (I3=max(max(1,ceild(20-(6),2)),20-2*(6));I3<=20-(6);I3++) {
7884     J3 = 20-(I2)-(I3) ;
7885     S1++;
7886   }
7887   for (I3=max(20-(6)+1,ceild(20+2*6,2));I3<=min(N1,floord(2*20+3*6,3));I3++) {
7888     J3 = -(20)-2*(I2)+2*I3 ;
7889     S2++;
7890   }
7891   for (I2=7;I2<=16;I2++) {
7892     for (I3=max(max(ceild(20-I2,2),20-2*I2),1);I3<=min(20-I2,N1);I3++) {
7893       J3 = 20-(I2)-(I3) ;
7894       S1++;
7895     }
7896   }
7898 if (N1 == 12) {
7899   for (I3=ceild(15+2*1,2);I3<=min(N1,floord(2*15+3*1,3));I3++) {
7900     J3 = -(15)-2*(I2)+2*I3 ;
7901     S2++;
7902   }
7903   for (I2=2;I2<=1;I2++) {
7904     for (I3=ceild(15+2*I2,2);I3<=min(15-2*I2-1,floord(2*15+3*I2,3));I3++) {
7905       J3 = -(15)-2*(I2)+2*I3 ;
7906       S2++;
7907     }
7908     for (I3=15-2*I2;I3<=min(N1,15-I2);I3++) {
7909       J3 = 15-(I2)-(I3) ;
7910       S1++;
7911     }
7912   }
7913   if (5%3 == 0) {
7914     for (I3=ceild(15+2*5/3,2);I3<=15-2*(5/3)-1;I3++) {
7915       J3 = -(15)-2*(I2)+2*I3 ;
7916       S2++;
7917     }
7918     for (I3=15-2*(5/3);I3<=floord(2*15+3*5/3,3);I3++) {
7919       J3 = 15-(I2)-(I3) ;
7920       S1++;
7921       J3 = -(15)-2*(I2)+2*I3 ;
7922       S2++;
7923     }
7924     for (I3=ceild(2*15+3*5/3+1,3);I3<=min(N1,15-(5/3));I3++) {
7925       J3 = 15-(I2)-(I3) ;
7926       S1++;
7927     }
7928   }
7929   for (I3=ceild(15+2*2,2);I3<=15-2*(2)-1;I3++) {
7930     J3 = -(15)-2*(I2)+2*I3 ;
7931     S2++;
7932   }
7933   for (I3=15-2*(2);I3<=N1;I3++) {
7934     J3 = 15-(I2)-(I3) ;
7935     S1++;
7936     J3 = -(15)-2*(I2)+2*I3 ;
7937     S2++;
7938   }
7939   if (15%7 == 0) {
7940     for (I3=ceild(9*15/7,2);I3<=5*15/7-1;I3++) {
7941       J3 = -(15)-2*(I2)+2*I3 ;
7942       S2++;
7943     }
7944     if (5*15%7 == 0) {
7945       I3 = 5*15/7 ;
7946       J1 = -2*(15)+3*I3 ;
7947       if ((2*15+J1)%3 == 0) {
7948         J2 = (2*15+J1)/3 ;
7949         J3 = 3*15-4*J2 ;
7950         S1++;
7951         S2++;
7952       }
7953     }
7954     for (I3=ceild(15*15/7+1,3);I3<=N1;I3++) {
7955       J3 = 15-(I2)-(I3) ;
7956       S1++;
7957       J3 = -(15)-2*(I2)+2*I3 ;
7958       S2++;
7959     }
7960   }
7961   if (5%2 == 0) {
7962     for (I3=4*5/2;I3<=floord(13*5/2-1,3);I3++) {
7963       J3 = -(15)-2*(I2)+2*I3 ;
7964       S2++;
7965       J3 = 15-(I2)-(I3) ;
7966       S1++;
7967     }
7968     if (13*15%18 == 0) {
7969       I3 = 13*15/18 ;
7970       J1 = -2*(15)+3*I3 ;
7971       if ((2*15+J1)%3 == 0) {
7972         J2 = (2*15+J1)/3 ;
7973         J3 = 3*15-4*J2 ;
7974         S1++;
7975         S2++;
7976       }
7977     }
7978     for (I3=ceild(13*5/2+1,3);I3<=min(N1,5*5/2);I3++) {
7979       J3 = 15-(I2)-(I3) ;
7980       S1++;
7981       J3 = -(15)-2*(I2)+2*I3 ;
7982       S2++;
7983     }
7984   }
7985   for (I3=15-2*(3);I3<=floord(15+2*3-1,2);I3++) {
7986     J3 = 15-(I2)-(I3) ;
7987     S1++;
7988   }
7989   for (I3=ceild(15+2*3,2);I3<=floord(2*15+3-1,3);I3++) {
7990     J3 = -(15)-2*(I2)+2*I3 ;
7991     S2++;
7992     J3 = 15-(I2)-(I3) ;
7993     S1++;
7994   }
7995   if ((2*15+3)%3 == 0) {
7996     I3 = (2*15+3)/3 ;
7997     J1 = -2*(15)+3*I3 ;
7998     if ((2*15+J1)%3 == 0) {
7999       J2 = (2*15+J1)/3 ;
8000       J3 = 3*15-4*J2 ;
8001       S1++;
8002       S2++;
8003     }
8004   }
8005   for (I3=ceild(2*15+3+1,3);I3<=N1;I3++) {
8006     J3 = 15-(I2)-(I3) ;
8007     S1++;
8008     J3 = -(15)-2*(I2)+2*I3 ;
8009     S2++;
8010   }
8011   for (I3=max(max(1,ceild(15-(4),2)),15-2*(4));I3<=15-(4);I3++) {
8012     J3 = 15-(I2)-(I3) ;
8013     S1++;
8014   }
8015   for (I3=max(15-(4)+1,ceild(15+2*4,2));I3<=min(N1,floord(2*15+3*4,3));I3++) {
8016     J3 = -(15)-2*(I2)+2*I3 ;
8017     S2++;
8018   }
8019   for (I2=5;I2<=12;I2++) {
8020     for (I3=max(max(ceild(15-I2,2),15-2*I2),1);I3<=min(15-I2,N1);I3++) {
8021       J3 = 15-(I2)-(I3) ;
8022       S1++;
8023     }
8024   }
8026 if ((N1 <= 15) && (N1 >= 14)) {
8027   if ((4*N1-5)%3 == 0) {
8028     I1 = (4*N1-5)/3 ;
8029     for (I2=1;I2<=floord(N1-8,6);I2++) {
8030       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8031         J3 = -I1-2*(I2)+2*I3 ;
8032         S2++;
8033       }
8034     }
8035     for (I2=ceild(N1-5,6);I2<=floord(4*N1-8,27);I2++) {
8036       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
8037         J3 = -I1-2*(I2)+2*I3 ;
8038         S2++;
8039       }
8040       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
8041         J3 = I1-(I2)-(I3) ;
8042         S1++;
8043       }
8044     }
8045     for (I2=ceild(4*N1-5,27);I2<=min(floord(4*N1-8,21),floord(N1+7,9));I2++) {
8046       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
8047         J3 = -I1-2*(I2)+2*I3 ;
8048         S2++;
8049       }
8050       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
8051         J3 = I1-(I2)-(I3) ;
8052         S1++;
8053         J3 = -I1-2*(I2)+2*I3 ;
8054         S2++;
8055       }
8056       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
8057         J3 = I1-(I2)-(I3) ;
8058         S1++;
8059       }
8060     }
8061     if ((4*N1-5)%18 == 0) {
8062       I2 = (4*N1-5)/18 ;
8063       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
8064         J3 = -I1-2*(I2)+2*I3 ;
8065         S2++;
8066         J3 = I1-(I2)-(I3) ;
8067         S1++;
8068       }
8069       if (13*I1%18 == 0) {
8070         I3 = 13*I1/18 ;
8071         J1 = -2*I1+3*I3 ;
8072         if ((2*I1+J1)%3 == 0) {
8073           J2 = (2*I1+J1)/3 ;
8074           J3 = 3*I1-4*J2 ;
8075           S1++;
8076           S2++;
8077         }
8078       }
8079       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
8080         J3 = I1-(I2)-(I3) ;
8081         S1++;
8082         J3 = -I1-2*(I2)+2*I3 ;
8083         S2++;
8084       }
8085     }
8086     for (I2=ceild(2*N1-1,9);I2<=floord(N1-5,3);I2++) {
8087       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
8088         J3 = I1-(I2)-(I3) ;
8089         S1++;
8090       }
8091       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
8092         J3 = -I1-2*(I2)+2*I3 ;
8093         S2++;
8094         J3 = I1-(I2)-(I3) ;
8095         S1++;
8096       }
8097       if ((2*I1+I2)%3 == 0) {
8098         I3 = (2*I1+I2)/3 ;
8099         J1 = -2*I1+3*I3 ;
8100         if ((2*I1+J1)%3 == 0) {
8101           J2 = (2*I1+J1)/3 ;
8102           J3 = 3*I1-4*J2 ;
8103           S1++;
8104           S2++;
8105         }
8106       }
8107       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
8108         J3 = I1-(I2)-(I3) ;
8109         S1++;
8110         J3 = -I1-2*(I2)+2*I3 ;
8111         S2++;
8112       }
8113     }
8114     if ((N1-2)%3 == 0) {
8115       I2 = (N1-2)/3 ;
8116       for (I3=2*I2+1;I3<=3*I2;I3++) {
8117         J3 = I1-(I2)-(I3) ;
8118         S1++;
8119       }
8120       if ((9*I1-1)%12 == 0) {
8121         I3 = (9*I1-1)/12 ;
8122         J1 = -2*I1+3*I3 ;
8123         if ((2*I1+J1)%3 == 0) {
8124           J2 = (2*I1+J1)/3 ;
8125           J3 = 3*I1-4*J2 ;
8126           S1++;
8127           S2++;
8128         }
8129       }
8130       if ((3*I1+1)%4 == 0) {
8131         I3 = (3*I1+1)/4 ;
8132         J3 = I1-(I2)-(I3) ;
8133         S1++;
8134         J3 = -I1-2*(I2)+2*I3 ;
8135         S2++;
8136       }
8137       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
8138         J3 = -I1-2*(I2)+2*I3 ;
8139         S2++;
8140       }
8141     }
8142     if ((4*N1-5)%12 == 0) {
8143       I2 = (4*N1-5)/12 ;
8144       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
8145         J3 = I1-(I2)-(I3) ;
8146         S1++;
8147       }
8148       if (3*I1%4 == 0) {
8149         I3 = 3*I1/4 ;
8150         J1 = -2*I1+3*I3 ;
8151         if ((2*I1+J1)%3 == 0) {
8152           J2 = (2*I1+J1)/3 ;
8153           J3 = 3*I1-4*J2 ;
8154           S1++;
8155           S2++;
8156         }
8157       }
8158       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
8159         J3 = -I1-2*(I2)+2*I3 ;
8160         S2++;
8161       }
8162     }
8163     for (I2=ceild(2*N1-1,6);I2<=floord(2*N1+5,6);I2++) {
8164       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
8165         J3 = I1-(I2)-(I3) ;
8166         S1++;
8167       }
8168       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8169         J3 = -I1-2*(I2)+2*I3 ;
8170         S2++;
8171       }
8172     }
8173     for (I2=ceild(N1+4,3);I2<=N1;I2++) {
8174       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
8175         J3 = I1-(I2)-(I3) ;
8176         S1++;
8177       }
8178     }
8179   }
8181 if (N1 == 13) {
8182   for (I3=ceild(16+2*1,2);I3<=min(N1,floord(2*16+3*1,3));I3++) {
8183     J3 = -(16)-2*(I2)+2*I3 ;
8184     S2++;
8185   }
8186   for (I2=2;I2<=1;I2++) {
8187     for (I3=ceild(16+2*I2,2);I3<=min(16-2*I2-1,floord(2*16+3*I2,3));I3++) {
8188       J3 = -(16)-2*(I2)+2*I3 ;
8189       S2++;
8190     }
8191     for (I3=16-2*I2;I3<=min(N1,16-I2);I3++) {
8192       J3 = 16-(I2)-(I3) ;
8193       S1++;
8194     }
8195   }
8196   for (I3=ceild(16+2*2,2);I3<=16-2*(2)-1;I3++) {
8197     J3 = -(16)-2*(I2)+2*I3 ;
8198     S2++;
8199   }
8200   for (I3=16-2*(2);I3<=floord(2*16+3*2,3);I3++) {
8201     J3 = 16-(I2)-(I3) ;
8202     S1++;
8203     J3 = -(16)-2*(I2)+2*I3 ;
8204     S2++;
8205   }
8206   for (I3=ceild(2*16+3*2+1,3);I3<=min(N1,16-(2));I3++) {
8207     J3 = 16-(I2)-(I3) ;
8208     S1++;
8209   }
8210   if (8%3 == 0) {
8211     for (I3=4*8/3;I3<=floord(13*8/3-1,3);I3++) {
8212       J3 = -(16)-2*(I2)+2*I3 ;
8213       S2++;
8214       J3 = 16-(I2)-(I3) ;
8215       S1++;
8216     }
8217     if (13*16%18 == 0) {
8218       I3 = 13*16/18 ;
8219       J1 = -2*(16)+3*I3 ;
8220       if ((2*16+J1)%3 == 0) {
8221         J2 = (2*16+J1)/3 ;
8222         J3 = 3*16-4*J2 ;
8223         S1++;
8224         S2++;
8225       }
8226     }
8227     for (I3=ceild(13*8/3+1,3);I3<=min(N1,5*8/3);I3++) {
8228       J3 = 16-(I2)-(I3) ;
8229       S1++;
8230       J3 = -(16)-2*(I2)+2*I3 ;
8231       S2++;
8232     }
8233   }
8234   for (I3=16-2*(3);I3<=floord(16+2*3-1,2);I3++) {
8235     J3 = 16-(I2)-(I3) ;
8236     S1++;
8237   }
8238   for (I3=ceild(16+2*3,2);I3<=floord(2*16+3-1,3);I3++) {
8239     J3 = -(16)-2*(I2)+2*I3 ;
8240     S2++;
8241     J3 = 16-(I2)-(I3) ;
8242     S1++;
8243   }
8244   if ((2*16+3)%3 == 0) {
8245     I3 = (2*16+3)/3 ;
8246     J1 = -2*(16)+3*I3 ;
8247     if ((2*16+J1)%3 == 0) {
8248       J2 = (2*16+J1)/3 ;
8249       J3 = 3*16-4*J2 ;
8250       S1++;
8251       S2++;
8252     }
8253   }
8254   for (I3=ceild(2*16+3+1,3);I3<=N1;I3++) {
8255     J3 = 16-(I2)-(I3) ;
8256     S1++;
8257     J3 = -(16)-2*(I2)+2*I3 ;
8258     S2++;
8259   }
8260   for (I3=2*4;I3<=floord(6*4-1,2);I3++) {
8261     J3 = 16-(I2)-(I3) ;
8262     S1++;
8263   }
8264   if (3*16%4 == 0) {
8265     I3 = 3*16/4 ;
8266     J1 = -2*(16)+3*I3 ;
8267     if ((2*16+J1)%3 == 0) {
8268       J2 = (2*16+J1)/3 ;
8269       J3 = 3*16-4*J2 ;
8270       S1++;
8271       S2++;
8272     }
8273   }
8274   for (I3=3*4+1;I3<=min(N1,floord(11*4,3));I3++) {
8275     J3 = -(16)-2*(I2)+2*I3 ;
8276     S2++;
8277   }
8278   for (I3=max(max(1,ceild(16-(5),2)),16-2*(5));I3<=16-(5);I3++) {
8279     J3 = 16-(I2)-(I3) ;
8280     S1++;
8281   }
8282   for (I3=max(16-(5)+1,ceild(16+2*5,2));I3<=min(N1,floord(2*16+3*5,3));I3++) {
8283     J3 = -(16)-2*(I2)+2*I3 ;
8284     S2++;
8285   }
8286   for (I2=6;I2<=13;I2++) {
8287     for (I3=max(max(ceild(16-I2,2),16-2*I2),1);I3<=min(16-I2,N1);I3++) {
8288       J3 = 16-(I2)-(I3) ;
8289       S1++;
8290     }
8291   }
8293 for (I1=max(max(N1+3,20),ceild(6*N1-3,5));I1<=floord(6*N1-1,5);I1++) {
8294   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
8295     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8296       J3 = -I1-2*(I2)+2*I3 ;
8297       S2++;
8298     }
8299   }
8300   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
8301     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
8302       J3 = -I1-2*(I2)+2*I3 ;
8303       S2++;
8304     }
8305     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
8306       J3 = I1-(I2)-(I3) ;
8307       S1++;
8308     }
8309   }
8310   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
8311     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
8312       J3 = -I1-2*(I2)+2*I3 ;
8313       S2++;
8314     }
8315     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
8316       J3 = I1-(I2)-(I3) ;
8317       S1++;
8318       J3 = -I1-2*(I2)+2*I3 ;
8319       S2++;
8320     }
8321     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
8322       J3 = I1-(I2)-(I3) ;
8323       S1++;
8324     }
8325   }
8326   if (I1%7 == 0) {
8327     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
8328       J3 = -I1-2*(I2)+2*I3 ;
8329       S2++;
8330     }
8331     if (5*I1%7 == 0) {
8332       I3 = 5*I1/7 ;
8333       J1 = -2*I1+3*I3 ;
8334       if ((2*I1+J1)%3 == 0) {
8335         J2 = (2*I1+J1)/3 ;
8336         J3 = 3*I1-4*J2 ;
8337         S1++;
8338         S2++;
8339       }
8340     }
8341     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
8342       J3 = I1-(I2)-(I3) ;
8343       S1++;
8344       J3 = -I1-2*(I2)+2*I3 ;
8345       S2++;
8346     }
8347     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
8348       J3 = I1-(I2)-(I3) ;
8349       S1++;
8350     }
8351   }
8352   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
8353     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
8354       J3 = -I1-2*(I2)+2*I3 ;
8355       S2++;
8356     }
8357     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
8358       J3 = -I1-2*(I2)+2*I3 ;
8359       S2++;
8360       J3 = I1-(I2)-(I3) ;
8361       S1++;
8362     }
8363     if ((2*I1+I2)%3 == 0) {
8364       I3 = (2*I1+I2)/3 ;
8365       J1 = -2*I1+3*I3 ;
8366       if ((2*I1+J1)%3 == 0) {
8367         J2 = (2*I1+J1)/3 ;
8368         J3 = 3*I1-4*J2 ;
8369         S1++;
8370         S2++;
8371       }
8372     }
8373     for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
8374       J3 = I1-(I2)-(I3) ;
8375       S1++;
8376       J3 = -I1-2*(I2)+2*I3 ;
8377       S2++;
8378     }
8379     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
8380       J3 = I1-(I2)-(I3) ;
8381       S1++;
8382     }
8383   }
8384   if ((I1-1)%6 == 0) {
8385     I2 = (I1-1)/6 ;
8386     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
8387       J3 = -I1-2*(I2)+2*I3 ;
8388       S2++;
8389       J3 = I1-(I2)-(I3) ;
8390       S1++;
8391     }
8392     if ((13*I1-1)%18 == 0) {
8393       I3 = (13*I1-1)/18 ;
8394       J1 = -2*I1+3*I3 ;
8395       if ((2*I1+J1)%3 == 0) {
8396         J2 = (2*I1+J1)/3 ;
8397         J3 = 3*I1-4*J2 ;
8398         S1++;
8399         S2++;
8400       }
8401     }
8402     for (I3=ceild(13*I2+3,3);I3<=floord(15*I2+2,3);I3++) {
8403       J3 = I1-(I2)-(I3) ;
8404       S1++;
8405       J3 = -I1-2*(I2)+2*I3 ;
8406       S2++;
8407     }
8408     if ((5*I1+1)%6 == 0) {
8409       I3 = (5*I1+1)/6 ;
8410       J3 = I1-(I2)-(I3) ;
8411       S1++;
8412     }
8413   }
8414   if (I1%6 == 0) {
8415     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
8416       J3 = -I1-2*(I2)+2*I3 ;
8417       S2++;
8418       J3 = I1-(I2)-(I3) ;
8419       S1++;
8420     }
8421     if (13*I1%18 == 0) {
8422       I3 = 13*I1/18 ;
8423       J1 = -2*I1+3*I3 ;
8424       if ((2*I1+J1)%3 == 0) {
8425         J2 = (2*I1+J1)/3 ;
8426         J3 = 3*I1-4*J2 ;
8427         S1++;
8428         S2++;
8429       }
8430     }
8431     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
8432       J3 = I1-(I2)-(I3) ;
8433       S1++;
8434       J3 = -I1-2*(I2)+2*I3 ;
8435       S2++;
8436     }
8437   }
8438   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
8439     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
8440       J3 = I1-(I2)-(I3) ;
8441       S1++;
8442     }
8443     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
8444       J3 = -I1-2*(I2)+2*I3 ;
8445       S2++;
8446       J3 = I1-(I2)-(I3) ;
8447       S1++;
8448     }
8449     if ((2*I1+I2)%3 == 0) {
8450       I3 = (2*I1+I2)/3 ;
8451       J1 = -2*I1+3*I3 ;
8452       if ((2*I1+J1)%3 == 0) {
8453         J2 = (2*I1+J1)/3 ;
8454         J3 = 3*I1-4*J2 ;
8455         S1++;
8456         S2++;
8457       }
8458     }
8459     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
8460       J3 = I1-(I2)-(I3) ;
8461       S1++;
8462       J3 = -I1-2*(I2)+2*I3 ;
8463       S2++;
8464     }
8465     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8466       J3 = -I1-2*(I2)+2*I3 ;
8467       S2++;
8468     }
8469   }
8470   if ((I1-1)%4 == 0) {
8471     I2 = (I1-1)/4 ;
8472     for (I3=2*I2+1;I3<=3*I2;I3++) {
8473       J3 = I1-(I2)-(I3) ;
8474       S1++;
8475     }
8476     if ((9*I1-1)%12 == 0) {
8477       I3 = (9*I1-1)/12 ;
8478       J1 = -2*I1+3*I3 ;
8479       if ((2*I1+J1)%3 == 0) {
8480         J2 = (2*I1+J1)/3 ;
8481         J3 = 3*I1-4*J2 ;
8482         S1++;
8483         S2++;
8484       }
8485     }
8486     if ((3*I1+1)%4 == 0) {
8487       I3 = (3*I1+1)/4 ;
8488       J3 = I1-(I2)-(I3) ;
8489       S1++;
8490       J3 = -I1-2*(I2)+2*I3 ;
8491       S2++;
8492     }
8493     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
8494       J3 = -I1-2*(I2)+2*I3 ;
8495       S2++;
8496     }
8497   }
8498   if (I1%4 == 0) {
8499     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
8500       J3 = I1-(I2)-(I3) ;
8501       S1++;
8502     }
8503     if (3*I1%4 == 0) {
8504       I3 = 3*I1/4 ;
8505       J1 = -2*I1+3*I3 ;
8506       if ((2*I1+J1)%3 == 0) {
8507         J2 = (2*I1+J1)/3 ;
8508         J3 = 3*I1-4*J2 ;
8509         S1++;
8510         S2++;
8511       }
8512     }
8513     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
8514       J3 = -I1-2*(I2)+2*I3 ;
8515       S2++;
8516     }
8517   }
8518   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
8519     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
8520       J3 = I1-(I2)-(I3) ;
8521       S1++;
8522     }
8523     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8524       J3 = -I1-2*(I2)+2*I3 ;
8525       S2++;
8526     }
8527   }
8528   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
8529     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
8530       J3 = I1-(I2)-(I3) ;
8531       S1++;
8532     }
8533   }
8535 if ((N1 <= 14) && (N1 >= 14)) {
8536   if ((4*N1-4)%3 == 0) {
8537     I1 = (4*N1-4)/3 ;
8538     for (I2=1;I2<=floord(N1-7,6);I2++) {
8539       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8540         J3 = -I1-2*(I2)+2*I3 ;
8541         S2++;
8542       }
8543     }
8544     for (I2=ceild(N1-4,6);I2<=floord(4*N1-7,27);I2++) {
8545       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
8546         J3 = -I1-2*(I2)+2*I3 ;
8547         S2++;
8548       }
8549       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
8550         J3 = I1-(I2)-(I3) ;
8551         S1++;
8552       }
8553     }
8554     for (I2=ceild(4*N1-4,27);I2<=floord(N1+5,9);I2++) {
8555       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
8556         J3 = -I1-2*(I2)+2*I3 ;
8557         S2++;
8558       }
8559       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
8560         J3 = I1-(I2)-(I3) ;
8561         S1++;
8562         J3 = -I1-2*(I2)+2*I3 ;
8563         S2++;
8564       }
8565       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
8566         J3 = I1-(I2)-(I3) ;
8567         S1++;
8568       }
8569     }
8570     if ((4*N1-4)%21 == 0) {
8571       I2 = (4*N1-4)/21 ;
8572       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
8573         J3 = -I1-2*(I2)+2*I3 ;
8574         S2++;
8575       }
8576       if (5*I1%7 == 0) {
8577         I3 = 5*I1/7 ;
8578         J1 = -2*I1+3*I3 ;
8579         if ((2*I1+J1)%3 == 0) {
8580           J2 = (2*I1+J1)/3 ;
8581           J3 = 3*I1-4*J2 ;
8582           S1++;
8583           S2++;
8584         }
8585       }
8586       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
8587         J3 = I1-(I2)-(I3) ;
8588         S1++;
8589         J3 = -I1-2*(I2)+2*I3 ;
8590         S2++;
8591       }
8592     }
8593     if ((2*N1-2)%9 == 0) {
8594       I2 = (2*N1-2)/9 ;
8595       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
8596         J3 = -I1-2*(I2)+2*I3 ;
8597         S2++;
8598         J3 = I1-(I2)-(I3) ;
8599         S1++;
8600       }
8601       if (13*I1%18 == 0) {
8602         I3 = 13*I1/18 ;
8603         J1 = -2*I1+3*I3 ;
8604         if ((2*I1+J1)%3 == 0) {
8605           J2 = (2*I1+J1)/3 ;
8606           J3 = 3*I1-4*J2 ;
8607           S1++;
8608           S2++;
8609         }
8610       }
8611       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
8612         J3 = I1-(I2)-(I3) ;
8613         S1++;
8614         J3 = -I1-2*(I2)+2*I3 ;
8615         S2++;
8616       }
8617     }
8618     for (I2=ceild(4*N1-1,18);I2<=floord(N1-4,3);I2++) {
8619       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
8620         J3 = I1-(I2)-(I3) ;
8621         S1++;
8622       }
8623       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
8624         J3 = -I1-2*(I2)+2*I3 ;
8625         S2++;
8626         J3 = I1-(I2)-(I3) ;
8627         S1++;
8628       }
8629       if ((2*I1+I2)%3 == 0) {
8630         I3 = (2*I1+I2)/3 ;
8631         J1 = -2*I1+3*I3 ;
8632         if ((2*I1+J1)%3 == 0) {
8633           J2 = (2*I1+J1)/3 ;
8634           J3 = 3*I1-4*J2 ;
8635           S1++;
8636           S2++;
8637         }
8638       }
8639       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
8640         J3 = I1-(I2)-(I3) ;
8641         S1++;
8642         J3 = -I1-2*(I2)+2*I3 ;
8643         S2++;
8644       }
8645     }
8646     if ((N1-1)%3 == 0) {
8647       I2 = (N1-1)/3 ;
8648       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
8649         J3 = I1-(I2)-(I3) ;
8650         S1++;
8651       }
8652       if (3*I1%4 == 0) {
8653         I3 = 3*I1/4 ;
8654         J1 = -2*I1+3*I3 ;
8655         if ((2*I1+J1)%3 == 0) {
8656           J2 = (2*I1+J1)/3 ;
8657           J3 = 3*I1-4*J2 ;
8658           S1++;
8659           S2++;
8660         }
8661       }
8662       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
8663         J3 = -I1-2*(I2)+2*I3 ;
8664         S2++;
8665       }
8666     }
8667     for (I2=ceild(4*N1-1,12);I2<=floord(N1+2,3);I2++) {
8668       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
8669         J3 = I1-(I2)-(I3) ;
8670         S1++;
8671       }
8672       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8673         J3 = -I1-2*(I2)+2*I3 ;
8674         S2++;
8675       }
8676     }
8677     for (I2=ceild(2*N1+7,6);I2<=N1;I2++) {
8678       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
8679         J3 = I1-(I2)-(I3) ;
8680         S1++;
8681       }
8682     }
8683   }
8685 if (N1 == 15) {
8686   for (I3=ceild(19+2*1,2);I3<=min(N1,floord(2*19+3*1,3));I3++) {
8687     J3 = -(19)-2*(I2)+2*I3 ;
8688     S2++;
8689   }
8690   for (I3=ceild(19+2*2,2);I3<=min(19-2*(2)-1,floord(2*19+3*2,3));I3++) {
8691     J3 = -(19)-2*(I2)+2*I3 ;
8692     S2++;
8693   }
8694   for (I3=19-2*(2);I3<=min(N1,19-(2));I3++) {
8695     J3 = 19-(I2)-(I3) ;
8696     S1++;
8697   }
8698   for (I2=3;I2<=2;I2++) {
8699     for (I3=ceild(19+2*I2,2);I3<=19-2*I2-1;I3++) {
8700       J3 = -(19)-2*(I2)+2*I3 ;
8701       S2++;
8702     }
8703     for (I3=19-2*I2;I3<=N1;I3++) {
8704       J3 = 19-(I2)-(I3) ;
8705       S1++;
8706       J3 = -(19)-2*(I2)+2*I3 ;
8707       S2++;
8708     }
8709   }
8710   if (19%7 == 0) {
8711     for (I3=ceild(9*19/7,2);I3<=5*19/7-1;I3++) {
8712       J3 = -(19)-2*(I2)+2*I3 ;
8713       S2++;
8714     }
8715     if (5*19%7 == 0) {
8716       I3 = 5*19/7 ;
8717       J1 = -2*(19)+3*I3 ;
8718       if ((2*19+J1)%3 == 0) {
8719         J2 = (2*19+J1)/3 ;
8720         J3 = 3*19-4*J2 ;
8721         S1++;
8722         S2++;
8723       }
8724     }
8725     for (I3=ceild(15*19/7+1,3);I3<=N1;I3++) {
8726       J3 = 19-(I2)-(I3) ;
8727       S1++;
8728       J3 = -(19)-2*(I2)+2*I3 ;
8729       S2++;
8730     }
8731   }
8732   for (I3=4*3+1;I3<=floord(13*3+1,3);I3++) {
8733     J3 = -(19)-2*(I2)+2*I3 ;
8734     S2++;
8735     J3 = 19-(I2)-(I3) ;
8736     S1++;
8737   }
8738   if ((13*19-1)%18 == 0) {
8739     I3 = (13*19-1)/18 ;
8740     J1 = -2*(19)+3*I3 ;
8741     if ((2*19+J1)%3 == 0) {
8742       J2 = (2*19+J1)/3 ;
8743       J3 = 3*19-4*J2 ;
8744       S1++;
8745       S2++;
8746     }
8747   }
8748   for (I3=ceild(13*3+3,3);I3<=N1;I3++) {
8749     J3 = 19-(I2)-(I3) ;
8750     S1++;
8751     J3 = -(19)-2*(I2)+2*I3 ;
8752     S2++;
8753   }
8754   if (19%6 == 0) {
8755     for (I3=4*19/6;I3<=floord(13*19/6-1,3);I3++) {
8756       J3 = -(19)-2*(I2)+2*I3 ;
8757       S2++;
8758       J3 = 19-(I2)-(I3) ;
8759       S1++;
8760     }
8761     if (13*19%18 == 0) {
8762       I3 = 13*19/18 ;
8763       J1 = -2*(19)+3*I3 ;
8764       if ((2*19+J1)%3 == 0) {
8765         J2 = (2*19+J1)/3 ;
8766         J3 = 3*19-4*J2 ;
8767         S1++;
8768         S2++;
8769       }
8770     }
8771     for (I3=ceild(13*19/6+1,3);I3<=min(N1,5*19/6);I3++) {
8772       J3 = 19-(I2)-(I3) ;
8773       S1++;
8774       J3 = -(19)-2*(I2)+2*I3 ;
8775       S2++;
8776     }
8777   }
8778   for (I3=19-2*(4);I3<=floord(19+2*4-1,2);I3++) {
8779     J3 = 19-(I2)-(I3) ;
8780     S1++;
8781   }
8782   for (I3=ceild(19+2*4,2);I3<=floord(2*19+4-1,3);I3++) {
8783     J3 = -(19)-2*(I2)+2*I3 ;
8784     S2++;
8785     J3 = 19-(I2)-(I3) ;
8786     S1++;
8787   }
8788   if ((2*19+4)%3 == 0) {
8789     I3 = (2*19+4)/3 ;
8790     J1 = -2*(19)+3*I3 ;
8791     if ((2*19+J1)%3 == 0) {
8792       J2 = (2*19+J1)/3 ;
8793       J3 = 3*19-4*J2 ;
8794       S1++;
8795       S2++;
8796     }
8797   }
8798   for (I3=ceild(2*19+4+1,3);I3<=N1;I3++) {
8799     J3 = 19-(I2)-(I3) ;
8800     S1++;
8801     J3 = -(19)-2*(I2)+2*I3 ;
8802     S2++;
8803   }
8804   for (I3=max(max(1,ceild(19-(5),2)),19-2*(5));I3<=19-(5);I3++) {
8805     J3 = 19-(I2)-(I3) ;
8806     S1++;
8807   }
8808   for (I3=max(19-(5)+1,ceild(19+2*5,2));I3<=min(N1,floord(2*19+3*5,3));I3++) {
8809     J3 = -(19)-2*(I2)+2*I3 ;
8810     S2++;
8811   }
8812   for (I2=6;I2<=15;I2++) {
8813     for (I3=max(max(ceild(19-I2,2),19-2*I2),1);I3<=min(19-I2,N1);I3++) {
8814       J3 = 19-(I2)-(I3) ;
8815       S1++;
8816     }
8817   }
8819 if ((N1 <= 12) && (N1 >= 12)) {
8820   if ((9*N1-2)%7 == 0) {
8821     I1 = (9*N1-2)/7 ;
8822     for (I2=1;I2<=floord(2*N1-9,14);I2++) {
8823       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8824         J3 = -I1-2*(I2)+2*I3 ;
8825         S2++;
8826       }
8827     }
8828     if ((N1-1)%7 == 0) {
8829       I2 = (N1-1)/7 ;
8830       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
8831         J3 = -I1-2*(I2)+2*I3 ;
8832         S2++;
8833       }
8834       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
8835         J3 = I1-(I2)-(I3) ;
8836         S1++;
8837       }
8838     }
8839     for (I2=ceild(3*N1+4,21);I2<=floord(9*N1-9,49);I2++) {
8840       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
8841         J3 = -I1-2*(I2)+2*I3 ;
8842         S2++;
8843       }
8844       for (I3=I1-2*I2;I3<=N1;I3++) {
8845         J3 = I1-(I2)-(I3) ;
8846         S1++;
8847         J3 = -I1-2*(I2)+2*I3 ;
8848         S2++;
8849       }
8850     }
8851     if ((9*N1-2)%49 == 0) {
8852       I2 = (9*N1-2)/49 ;
8853       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
8854         J3 = -I1-2*(I2)+2*I3 ;
8855         S2++;
8856       }
8857       if (5*I1%7 == 0) {
8858         I3 = 5*I1/7 ;
8859         J1 = -2*I1+3*I3 ;
8860         if ((2*I1+J1)%3 == 0) {
8861           J2 = (2*I1+J1)/3 ;
8862           J3 = 3*I1-4*J2 ;
8863           S1++;
8864           S2++;
8865         }
8866       }
8867       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
8868         J3 = I1-(I2)-(I3) ;
8869         S1++;
8870         J3 = -I1-2*(I2)+2*I3 ;
8871         S2++;
8872       }
8873     }
8874     if ((9*N1-2)%42 == 0) {
8875       I2 = (9*N1-2)/42 ;
8876       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
8877         J3 = -I1-2*(I2)+2*I3 ;
8878         S2++;
8879         J3 = I1-(I2)-(I3) ;
8880         S1++;
8881       }
8882       if (13*I1%18 == 0) {
8883         I3 = 13*I1/18 ;
8884         J1 = -2*I1+3*I3 ;
8885         if ((2*I1+J1)%3 == 0) {
8886           J2 = (2*I1+J1)/3 ;
8887           J3 = 3*I1-4*J2 ;
8888           S1++;
8889           S2++;
8890         }
8891       }
8892       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
8893         J3 = I1-(I2)-(I3) ;
8894         S1++;
8895         J3 = -I1-2*(I2)+2*I3 ;
8896         S2++;
8897       }
8898     }
8899     for (I2=ceild(9*N1+5,42);I2<=floord(2*N1-2,7);I2++) {
8900       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
8901         J3 = I1-(I2)-(I3) ;
8902         S1++;
8903       }
8904       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
8905         J3 = -I1-2*(I2)+2*I3 ;
8906         S2++;
8907         J3 = I1-(I2)-(I3) ;
8908         S1++;
8909       }
8910       if ((2*I1+I2)%3 == 0) {
8911         I3 = (2*I1+I2)/3 ;
8912         J1 = -2*I1+3*I3 ;
8913         if ((2*I1+J1)%3 == 0) {
8914           J2 = (2*I1+J1)/3 ;
8915           J3 = 3*I1-4*J2 ;
8916           S1++;
8917           S2++;
8918         }
8919       }
8920       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
8921         J3 = I1-(I2)-(I3) ;
8922         S1++;
8923         J3 = -I1-2*(I2)+2*I3 ;
8924         S2++;
8925       }
8926     }
8927     for (I2=ceild(2*N1+5,7);I2<=floord(5*N1+2,14);I2++) {
8928       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
8929         J3 = I1-(I2)-(I3) ;
8930         S1++;
8931       }
8932       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8933         J3 = -I1-2*(I2)+2*I3 ;
8934         S2++;
8935       }
8936     }
8937     for (I2=ceild(5*N1+9,14);I2<=N1;I2++) {
8938       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
8939         J3 = I1-(I2)-(I3) ;
8940         S1++;
8941       }
8942     }
8943   }
8945 if (N1 >= 17) {
8946   if (6*N1%5 == 0) {
8947     I1 = 6*N1/5 ;
8948     for (I2=1;I2<=floord(N1-5,10);I2++) {
8949       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
8950         J3 = -I1-2*(I2)+2*I3 ;
8951         S2++;
8952       }
8953     }
8954     for (I2=ceild(N1,10);I2<=floord(6*N1-5,45);I2++) {
8955       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
8956         J3 = -I1-2*(I2)+2*I3 ;
8957         S2++;
8958       }
8959       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
8960         J3 = I1-(I2)-(I3) ;
8961         S1++;
8962       }
8963     }
8964     for (I2=ceild(2*N1,15);I2<=floord(6*N1-5,35);I2++) {
8965       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
8966         J3 = -I1-2*(I2)+2*I3 ;
8967         S2++;
8968       }
8969       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
8970         J3 = I1-(I2)-(I3) ;
8971         S1++;
8972         J3 = -I1-2*(I2)+2*I3 ;
8973         S2++;
8974       }
8975       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
8976         J3 = I1-(I2)-(I3) ;
8977         S1++;
8978       }
8979     }
8980     if (6*N1%35 == 0) {
8981       I2 = 6*N1/35 ;
8982       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
8983         J3 = -I1-2*(I2)+2*I3 ;
8984         S2++;
8985       }
8986       if (5*I1%7 == 0) {
8987         I3 = 5*I1/7 ;
8988         J1 = -2*I1+3*I3 ;
8989         if ((2*I1+J1)%3 == 0) {
8990           J2 = (2*I1+J1)/3 ;
8991           J3 = 3*I1-4*J2 ;
8992           S1++;
8993           S2++;
8994         }
8995       }
8996       for (I3=ceild(15*I2+1,3);I3<=floord(17*I2,3);I3++) {
8997         J3 = I1-(I2)-(I3) ;
8998         S1++;
8999         J3 = -I1-2*(I2)+2*I3 ;
9000         S2++;
9001       }
9002       for (I3=ceild(17*I2+1,3);I3<=min(N1,6*I2);I3++) {
9003         J3 = I1-(I2)-(I3) ;
9004         S1++;
9005       }
9006     }
9007     for (I2=ceild(6*N1+5,35);I2<=floord(3*N1-5,15);I2++) {
9008       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9009         J3 = -I1-2*(I2)+2*I3 ;
9010         S2++;
9011       }
9012       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
9013         J3 = -I1-2*(I2)+2*I3 ;
9014         S2++;
9015         J3 = I1-(I2)-(I3) ;
9016         S1++;
9017       }
9018       if ((2*I1+I2)%3 == 0) {
9019         I3 = (2*I1+I2)/3 ;
9020         J1 = -2*I1+3*I3 ;
9021         if ((2*I1+J1)%3 == 0) {
9022           J2 = (2*I1+J1)/3 ;
9023           J3 = 3*I1-4*J2 ;
9024           S1++;
9025           S2++;
9026         }
9027       }
9028       for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
9029         J3 = I1-(I2)-(I3) ;
9030         S1++;
9031         J3 = -I1-2*(I2)+2*I3 ;
9032         S2++;
9033       }
9034       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
9035         J3 = I1-(I2)-(I3) ;
9036         S1++;
9037       }
9038     }
9039     if (N1%5 == 0) {
9040       for (I3=4*N1/5;I3<=floord(13*N1/5-1,3);I3++) {
9041         J3 = -I1-2*(I2)+2*I3 ;
9042         S2++;
9043         J3 = I1-(I2)-(I3) ;
9044         S1++;
9045       }
9046       if (13*I1%18 == 0) {
9047         I3 = 13*I1/18 ;
9048         J1 = -2*I1+3*I3 ;
9049         if ((2*I1+J1)%3 == 0) {
9050           J2 = (2*I1+J1)/3 ;
9051           J3 = 3*I1-4*J2 ;
9052           S1++;
9053           S2++;
9054         }
9055       }
9056       for (I3=ceild(13*N1/5+1,3);I3<=min(N1,5*N1/5);I3++) {
9057         J3 = I1-(I2)-(I3) ;
9058         S1++;
9059         J3 = -I1-2*(I2)+2*I3 ;
9060         S2++;
9061       }
9062     }
9063     for (I2=ceild(N1+5,5);I2<=floord(3*N1-5,10);I2++) {
9064       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
9065         J3 = I1-(I2)-(I3) ;
9066         S1++;
9067       }
9068       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
9069         J3 = -I1-2*(I2)+2*I3 ;
9070         S2++;
9071         J3 = I1-(I2)-(I3) ;
9072         S1++;
9073       }
9074       if ((2*I1+I2)%3 == 0) {
9075         I3 = (2*I1+I2)/3 ;
9076         J1 = -2*I1+3*I3 ;
9077         if ((2*I1+J1)%3 == 0) {
9078           J2 = (2*I1+J1)/3 ;
9079           J3 = 3*I1-4*J2 ;
9080           S1++;
9081           S2++;
9082         }
9083       }
9084       for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
9085         J3 = I1-(I2)-(I3) ;
9086         S1++;
9087         J3 = -I1-2*(I2)+2*I3 ;
9088         S2++;
9089       }
9090       for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9091         J3 = -I1-2*(I2)+2*I3 ;
9092         S2++;
9093       }
9094     }
9095     if ((6*N1-5)%20 == 0) {
9096       I2 = (6*N1-5)/20 ;
9097       for (I3=2*I2+1;I3<=3*I2;I3++) {
9098         J3 = I1-(I2)-(I3) ;
9099         S1++;
9100       }
9101       if ((9*I1-1)%12 == 0) {
9102         I3 = (9*I1-1)/12 ;
9103         J1 = -2*I1+3*I3 ;
9104         if ((2*I1+J1)%3 == 0) {
9105           J2 = (2*I1+J1)/3 ;
9106           J3 = 3*I1-4*J2 ;
9107           S1++;
9108           S2++;
9109         }
9110       }
9111       if ((3*I1+1)%4 == 0) {
9112         I3 = (3*I1+1)/4 ;
9113         J3 = I1-(I2)-(I3) ;
9114         S1++;
9115         J3 = -I1-2*(I2)+2*I3 ;
9116         S2++;
9117       }
9118       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
9119         J3 = -I1-2*(I2)+2*I3 ;
9120         S2++;
9121       }
9122     }
9123     if (3*N1%10 == 0) {
9124       I2 = 3*N1/10 ;
9125       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
9126         J3 = I1-(I2)-(I3) ;
9127         S1++;
9128       }
9129       if (3*I1%4 == 0) {
9130         I3 = 3*I1/4 ;
9131         J1 = -2*I1+3*I3 ;
9132         if ((2*I1+J1)%3 == 0) {
9133           J2 = (2*I1+J1)/3 ;
9134           J3 = 3*I1-4*J2 ;
9135           S1++;
9136           S2++;
9137         }
9138       }
9139       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
9140         J3 = -I1-2*(I2)+2*I3 ;
9141         S2++;
9142       }
9143     }
9144     for (I2=ceild(6*N1+5,20);I2<=floord(2*N1,5);I2++) {
9145       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
9146         J3 = I1-(I2)-(I3) ;
9147         S1++;
9148       }
9149       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9150         J3 = -I1-2*(I2)+2*I3 ;
9151         S2++;
9152       }
9153     }
9154     for (I2=ceild(4*N1+5,10);I2<=N1;I2++) {
9155       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
9156         J3 = I1-(I2)-(I3) ;
9157         S1++;
9158       }
9159     }
9160   }
9162 for (I1=max(ceild(9*N1-1,7),ceild(6*N1+5,5));I1<=min(19,floord(4*N1-2,3));I1++) {
9163   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
9164     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9165       J3 = -I1-2*(I2)+2*I3 ;
9166       S2++;
9167     }
9168   }
9169   for (I2=max(ceild(I1-N1,2),ceild(-2*I1+3*N1,3));I2<=floord(I1-1,7);I2++) {
9170     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9171       J3 = -I1-2*(I2)+2*I3 ;
9172       S2++;
9173     }
9174     for (I3=I1-2*I2;I3<=N1;I3++) {
9175       J3 = I1-(I2)-(I3) ;
9176       S1++;
9177       J3 = -I1-2*(I2)+2*I3 ;
9178       S2++;
9179     }
9180   }
9181   if (I1%7 == 0) {
9182     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
9183       J3 = -I1-2*(I2)+2*I3 ;
9184       S2++;
9185     }
9186     if (5*I1%7 == 0) {
9187       I3 = 5*I1/7 ;
9188       J1 = -2*I1+3*I3 ;
9189       if ((2*I1+J1)%3 == 0) {
9190         J2 = (2*I1+J1)/3 ;
9191         J3 = 3*I1-4*J2 ;
9192         S1++;
9193         S2++;
9194       }
9195     }
9196     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
9197       J3 = I1-(I2)-(I3) ;
9198       S1++;
9199       J3 = -I1-2*(I2)+2*I3 ;
9200       S2++;
9201     }
9202   }
9203   if ((I1-1)%6 == 0) {
9204     I2 = (I1-1)/6 ;
9205     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
9206       J3 = -I1-2*(I2)+2*I3 ;
9207       S2++;
9208       J3 = I1-(I2)-(I3) ;
9209       S1++;
9210     }
9211     if ((13*I1-1)%18 == 0) {
9212       I3 = (13*I1-1)/18 ;
9213       J1 = -2*I1+3*I3 ;
9214       if ((2*I1+J1)%3 == 0) {
9215         J2 = (2*I1+J1)/3 ;
9216         J3 = 3*I1-4*J2 ;
9217         S1++;
9218         S2++;
9219       }
9220     }
9221     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
9222       J3 = I1-(I2)-(I3) ;
9223       S1++;
9224       J3 = -I1-2*(I2)+2*I3 ;
9225       S2++;
9226     }
9227   }
9228   if (I1%6 == 0) {
9229     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
9230       J3 = -I1-2*(I2)+2*I3 ;
9231       S2++;
9232       J3 = I1-(I2)-(I3) ;
9233       S1++;
9234     }
9235     if (13*I1%18 == 0) {
9236       I3 = 13*I1/18 ;
9237       J1 = -2*I1+3*I3 ;
9238       if ((2*I1+J1)%3 == 0) {
9239         J2 = (2*I1+J1)/3 ;
9240         J3 = 3*I1-4*J2 ;
9241         S1++;
9242         S2++;
9243       }
9244     }
9245     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
9246       J3 = I1-(I2)-(I3) ;
9247       S1++;
9248       J3 = -I1-2*(I2)+2*I3 ;
9249       S2++;
9250     }
9251   }
9252   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
9253     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
9254       J3 = I1-(I2)-(I3) ;
9255       S1++;
9256     }
9257     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
9258       J3 = -I1-2*(I2)+2*I3 ;
9259       S2++;
9260       J3 = I1-(I2)-(I3) ;
9261       S1++;
9262     }
9263     if ((2*I1+I2)%3 == 0) {
9264       I3 = (2*I1+I2)/3 ;
9265       J1 = -2*I1+3*I3 ;
9266       if ((2*I1+J1)%3 == 0) {
9267         J2 = (2*I1+J1)/3 ;
9268         J3 = 3*I1-4*J2 ;
9269         S1++;
9270         S2++;
9271       }
9272     }
9273     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
9274       J3 = I1-(I2)-(I3) ;
9275       S1++;
9276       J3 = -I1-2*(I2)+2*I3 ;
9277       S2++;
9278     }
9279   }
9280   for (I2=I1-N1+1;I2<=floord(-I1+2*N1,2);I2++) {
9281     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
9282       J3 = I1-(I2)-(I3) ;
9283       S1++;
9284     }
9285     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9286       J3 = -I1-2*(I2)+2*I3 ;
9287       S2++;
9288     }
9289   }
9290   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
9291     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
9292       J3 = I1-(I2)-(I3) ;
9293       S1++;
9294     }
9295   }
9297 if (N1 >= 23) {
9298   if ((6*N1+1)%5 == 0) {
9299     I1 = (6*N1+1)/5 ;
9300     for (I2=1;I2<=floord(N1-4,10);I2++) {
9301       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9302         J3 = -I1-2*(I2)+2*I3 ;
9303         S2++;
9304       }
9305     }
9306     for (I2=ceild(N1+1,10);I2<=floord(6*N1-4,45);I2++) {
9307       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
9308         J3 = -I1-2*(I2)+2*I3 ;
9309         S2++;
9310       }
9311       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
9312         J3 = I1-(I2)-(I3) ;
9313         S1++;
9314       }
9315     }
9316     for (I2=ceild(6*N1+1,45);I2<=floord(6*N1-4,35);I2++) {
9317       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9318         J3 = -I1-2*(I2)+2*I3 ;
9319         S2++;
9320       }
9321       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
9322         J3 = I1-(I2)-(I3) ;
9323         S1++;
9324         J3 = -I1-2*(I2)+2*I3 ;
9325         S2++;
9326       }
9327       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
9328         J3 = I1-(I2)-(I3) ;
9329         S1++;
9330       }
9331     }
9332     if ((6*N1+1)%35 == 0) {
9333       I2 = (6*N1+1)/35 ;
9334       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
9335         J3 = -I1-2*(I2)+2*I3 ;
9336         S2++;
9337       }
9338       if (5*I1%7 == 0) {
9339         I3 = 5*I1/7 ;
9340         J1 = -2*I1+3*I3 ;
9341         if ((2*I1+J1)%3 == 0) {
9342           J2 = (2*I1+J1)/3 ;
9343           J3 = 3*I1-4*J2 ;
9344           S1++;
9345           S2++;
9346         }
9347       }
9348       for (I3=ceild(15*I2+1,3);I3<=floord(17*I2,3);I3++) {
9349         J3 = I1-(I2)-(I3) ;
9350         S1++;
9351         J3 = -I1-2*(I2)+2*I3 ;
9352         S2++;
9353       }
9354       for (I3=ceild(17*I2+1,3);I3<=min(N1,6*I2);I3++) {
9355         J3 = I1-(I2)-(I3) ;
9356         S1++;
9357       }
9358     }
9359     for (I2=ceild(6*N1+6,35);I2<=floord(3*N1-7,15);I2++) {
9360       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9361         J3 = -I1-2*(I2)+2*I3 ;
9362         S2++;
9363       }
9364       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
9365         J3 = -I1-2*(I2)+2*I3 ;
9366         S2++;
9367         J3 = I1-(I2)-(I3) ;
9368         S1++;
9369       }
9370       if ((2*I1+I2)%3 == 0) {
9371         I3 = (2*I1+I2)/3 ;
9372         J1 = -2*I1+3*I3 ;
9373         if ((2*I1+J1)%3 == 0) {
9374           J2 = (2*I1+J1)/3 ;
9375           J3 = 3*I1-4*J2 ;
9376           S1++;
9377           S2++;
9378         }
9379       }
9380       for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
9381         J3 = I1-(I2)-(I3) ;
9382         S1++;
9383         J3 = -I1-2*(I2)+2*I3 ;
9384         S2++;
9385       }
9386       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
9387         J3 = I1-(I2)-(I3) ;
9388         S1++;
9389       }
9390     }
9391     if ((6*N1+1)%30 == 0) {
9392       I2 = (6*N1+1)/30 ;
9393       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
9394         J3 = -I1-2*(I2)+2*I3 ;
9395         S2++;
9396         J3 = I1-(I2)-(I3) ;
9397         S1++;
9398       }
9399       if (13*I1%18 == 0) {
9400         I3 = 13*I1/18 ;
9401         J1 = -2*I1+3*I3 ;
9402         if ((2*I1+J1)%3 == 0) {
9403           J2 = (2*I1+J1)/3 ;
9404           J3 = 3*I1-4*J2 ;
9405           S1++;
9406           S2++;
9407         }
9408       }
9409       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
9410         J3 = I1-(I2)-(I3) ;
9411         S1++;
9412         J3 = -I1-2*(I2)+2*I3 ;
9413         S2++;
9414       }
9415     }
9416     if ((N1+1)%5 == 0) {
9417       I2 = (N1+1)/5 ;
9418       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
9419         J3 = I1-(I2)-(I3) ;
9420         S1++;
9421       }
9422       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
9423         J3 = -I1-2*(I2)+2*I3 ;
9424         S2++;
9425         J3 = I1-(I2)-(I3) ;
9426         S1++;
9427       }
9428       if ((2*I1+I2)%3 == 0) {
9429         I3 = (2*I1+I2)/3 ;
9430         J1 = -2*I1+3*I3 ;
9431         if ((2*I1+J1)%3 == 0) {
9432           J2 = (2*I1+J1)/3 ;
9433           J3 = 3*I1-4*J2 ;
9434           S1++;
9435           S2++;
9436         }
9437       }
9438       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
9439         J3 = I1-(I2)-(I3) ;
9440         S1++;
9441         J3 = -I1-2*(I2)+2*I3 ;
9442         S2++;
9443       }
9444     }
9445     for (I2=ceild(N1+6,5);I2<=floord(6*N1-9,20);I2++) {
9446       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
9447         J3 = I1-(I2)-(I3) ;
9448         S1++;
9449       }
9450       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
9451         J3 = -I1-2*(I2)+2*I3 ;
9452         S2++;
9453         J3 = I1-(I2)-(I3) ;
9454         S1++;
9455       }
9456       if ((2*I1+I2)%3 == 0) {
9457         I3 = (2*I1+I2)/3 ;
9458         J1 = -2*I1+3*I3 ;
9459         if ((2*I1+J1)%3 == 0) {
9460           J2 = (2*I1+J1)/3 ;
9461           J3 = 3*I1-4*J2 ;
9462           S1++;
9463           S2++;
9464         }
9465       }
9466       for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
9467         J3 = I1-(I2)-(I3) ;
9468         S1++;
9469         J3 = -I1-2*(I2)+2*I3 ;
9470         S2++;
9471       }
9472       for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9473         J3 = -I1-2*(I2)+2*I3 ;
9474         S2++;
9475       }
9476     }
9477     if ((3*N1-2)%10 == 0) {
9478       I2 = (3*N1-2)/10 ;
9479       for (I3=2*I2+1;I3<=3*I2;I3++) {
9480         J3 = I1-(I2)-(I3) ;
9481         S1++;
9482       }
9483       if ((9*I1-1)%12 == 0) {
9484         I3 = (9*I1-1)/12 ;
9485         J1 = -2*I1+3*I3 ;
9486         if ((2*I1+J1)%3 == 0) {
9487           J2 = (2*I1+J1)/3 ;
9488           J3 = 3*I1-4*J2 ;
9489           S1++;
9490           S2++;
9491         }
9492       }
9493       if ((3*I1+1)%4 == 0) {
9494         I3 = (3*I1+1)/4 ;
9495         J3 = I1-(I2)-(I3) ;
9496         S1++;
9497         J3 = -I1-2*(I2)+2*I3 ;
9498         S2++;
9499       }
9500       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
9501         J3 = -I1-2*(I2)+2*I3 ;
9502         S2++;
9503       }
9504     }
9505     if ((6*N1+1)%20 == 0) {
9506       I2 = (6*N1+1)/20 ;
9507       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
9508         J3 = I1-(I2)-(I3) ;
9509         S1++;
9510       }
9511       if (3*I1%4 == 0) {
9512         I3 = 3*I1/4 ;
9513         J1 = -2*I1+3*I3 ;
9514         if ((2*I1+J1)%3 == 0) {
9515           J2 = (2*I1+J1)/3 ;
9516           J3 = 3*I1-4*J2 ;
9517           S1++;
9518           S2++;
9519         }
9520       }
9521       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
9522         J3 = -I1-2*(I2)+2*I3 ;
9523         S2++;
9524       }
9525     }
9526     for (I2=ceild(3*N1+3,10);I2<=floord(4*N1-1,10);I2++) {
9527       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
9528         J3 = I1-(I2)-(I3) ;
9529         S1++;
9530       }
9531       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9532         J3 = -I1-2*(I2)+2*I3 ;
9533         S2++;
9534       }
9535     }
9536     for (I2=ceild(2*N1+2,5);I2<=N1;I2++) {
9537       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
9538         J3 = I1-(I2)-(I3) ;
9539         S1++;
9540       }
9541     }
9542   }
9544 if ((N1 >= 18) && (N1 <= 20)) {
9545   if ((6*N1+1)%5 == 0) {
9546     I1 = (6*N1+1)/5 ;
9547     for (I2=1;I2<=floord(N1-4,10);I2++) {
9548       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9549         J3 = -I1-2*(I2)+2*I3 ;
9550         S2++;
9551       }
9552     }
9553     for (I2=ceild(N1+1,10);I2<=floord(6*N1-4,45);I2++) {
9554       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
9555         J3 = -I1-2*(I2)+2*I3 ;
9556         S2++;
9557       }
9558       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
9559         J3 = I1-(I2)-(I3) ;
9560         S1++;
9561       }
9562     }
9563     for (I2=ceild(6*N1+1,45);I2<=floord(6*N1-4,35);I2++) {
9564       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9565         J3 = -I1-2*(I2)+2*I3 ;
9566         S2++;
9567       }
9568       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
9569         J3 = I1-(I2)-(I3) ;
9570         S1++;
9571         J3 = -I1-2*(I2)+2*I3 ;
9572         S2++;
9573       }
9574       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
9575         J3 = I1-(I2)-(I3) ;
9576         S1++;
9577       }
9578     }
9579     if ((6*N1+1)%35 == 0) {
9580       I2 = (6*N1+1)/35 ;
9581       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
9582         J3 = -I1-2*(I2)+2*I3 ;
9583         S2++;
9584       }
9585       if (5*I1%7 == 0) {
9586         I3 = 5*I1/7 ;
9587         J1 = -2*I1+3*I3 ;
9588         if ((2*I1+J1)%3 == 0) {
9589           J2 = (2*I1+J1)/3 ;
9590           J3 = 3*I1-4*J2 ;
9591           S1++;
9592           S2++;
9593         }
9594       }
9595       for (I3=ceild(15*I2+1,3);I3<=floord(17*I2,3);I3++) {
9596         J3 = I1-(I2)-(I3) ;
9597         S1++;
9598         J3 = -I1-2*(I2)+2*I3 ;
9599         S2++;
9600       }
9601       for (I3=ceild(17*I2+1,3);I3<=min(N1,6*I2);I3++) {
9602         J3 = I1-(I2)-(I3) ;
9603         S1++;
9604       }
9605     }
9606     if ((6*N1+1)%30 == 0) {
9607       I2 = (6*N1+1)/30 ;
9608       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
9609         J3 = -I1-2*(I2)+2*I3 ;
9610         S2++;
9611         J3 = I1-(I2)-(I3) ;
9612         S1++;
9613       }
9614       if (13*I1%18 == 0) {
9615         I3 = 13*I1/18 ;
9616         J1 = -2*I1+3*I3 ;
9617         if ((2*I1+J1)%3 == 0) {
9618           J2 = (2*I1+J1)/3 ;
9619           J3 = 3*I1-4*J2 ;
9620           S1++;
9621           S2++;
9622         }
9623       }
9624       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
9625         J3 = I1-(I2)-(I3) ;
9626         S1++;
9627         J3 = -I1-2*(I2)+2*I3 ;
9628         S2++;
9629       }
9630     }
9631     if ((N1+1)%5 == 0) {
9632       I2 = (N1+1)/5 ;
9633       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
9634         J3 = I1-(I2)-(I3) ;
9635         S1++;
9636       }
9637       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
9638         J3 = -I1-2*(I2)+2*I3 ;
9639         S2++;
9640         J3 = I1-(I2)-(I3) ;
9641         S1++;
9642       }
9643       if ((2*I1+I2)%3 == 0) {
9644         I3 = (2*I1+I2)/3 ;
9645         J1 = -2*I1+3*I3 ;
9646         if ((2*I1+J1)%3 == 0) {
9647           J2 = (2*I1+J1)/3 ;
9648           J3 = 3*I1-4*J2 ;
9649           S1++;
9650           S2++;
9651         }
9652       }
9653       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
9654         J3 = I1-(I2)-(I3) ;
9655         S1++;
9656         J3 = -I1-2*(I2)+2*I3 ;
9657         S2++;
9658       }
9659     }
9660     for (I2=ceild(N1+6,5);I2<=floord(6*N1-9,20);I2++) {
9661       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
9662         J3 = I1-(I2)-(I3) ;
9663         S1++;
9664       }
9665       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
9666         J3 = -I1-2*(I2)+2*I3 ;
9667         S2++;
9668         J3 = I1-(I2)-(I3) ;
9669         S1++;
9670       }
9671       if ((2*I1+I2)%3 == 0) {
9672         I3 = (2*I1+I2)/3 ;
9673         J1 = -2*I1+3*I3 ;
9674         if ((2*I1+J1)%3 == 0) {
9675           J2 = (2*I1+J1)/3 ;
9676           J3 = 3*I1-4*J2 ;
9677           S1++;
9678           S2++;
9679         }
9680       }
9681       for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
9682         J3 = I1-(I2)-(I3) ;
9683         S1++;
9684         J3 = -I1-2*(I2)+2*I3 ;
9685         S2++;
9686       }
9687       for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9688         J3 = -I1-2*(I2)+2*I3 ;
9689         S2++;
9690       }
9691     }
9692     if ((3*N1-2)%10 == 0) {
9693       I2 = (3*N1-2)/10 ;
9694       for (I3=2*I2+1;I3<=3*I2;I3++) {
9695         J3 = I1-(I2)-(I3) ;
9696         S1++;
9697       }
9698       if ((9*I1-1)%12 == 0) {
9699         I3 = (9*I1-1)/12 ;
9700         J1 = -2*I1+3*I3 ;
9701         if ((2*I1+J1)%3 == 0) {
9702           J2 = (2*I1+J1)/3 ;
9703           J3 = 3*I1-4*J2 ;
9704           S1++;
9705           S2++;
9706         }
9707       }
9708       if ((3*I1+1)%4 == 0) {
9709         I3 = (3*I1+1)/4 ;
9710         J3 = I1-(I2)-(I3) ;
9711         S1++;
9712         J3 = -I1-2*(I2)+2*I3 ;
9713         S2++;
9714       }
9715       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
9716         J3 = -I1-2*(I2)+2*I3 ;
9717         S2++;
9718       }
9719     }
9720     if ((6*N1+1)%20 == 0) {
9721       I2 = (6*N1+1)/20 ;
9722       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
9723         J3 = I1-(I2)-(I3) ;
9724         S1++;
9725       }
9726       if (3*I1%4 == 0) {
9727         I3 = 3*I1/4 ;
9728         J1 = -2*I1+3*I3 ;
9729         if ((2*I1+J1)%3 == 0) {
9730           J2 = (2*I1+J1)/3 ;
9731           J3 = 3*I1-4*J2 ;
9732           S1++;
9733           S2++;
9734         }
9735       }
9736       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
9737         J3 = -I1-2*(I2)+2*I3 ;
9738         S2++;
9739       }
9740     }
9741     for (I2=ceild(3*N1+3,10);I2<=floord(4*N1-1,10);I2++) {
9742       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
9743         J3 = I1-(I2)-(I3) ;
9744         S1++;
9745       }
9746       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9747         J3 = -I1-2*(I2)+2*I3 ;
9748         S2++;
9749       }
9750     }
9751     for (I2=ceild(2*N1+2,5);I2<=N1;I2++) {
9752       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
9753         J3 = I1-(I2)-(I3) ;
9754         S1++;
9755       }
9756     }
9757   }
9759 if ((N1 <= 14) && (N1 >= 11)) {
9760   if ((4*N1-1)%3 == 0) {
9761     I1 = (4*N1-1)/3 ;
9762     for (I2=1;I2<=floord(N1-4,6);I2++) {
9763       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9764         J3 = -I1-2*(I2)+2*I3 ;
9765         S2++;
9766       }
9767     }
9768     for (I2=ceild(N1-1,6);I2<=floord(4*N1-4,21);I2++) {
9769       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9770         J3 = -I1-2*(I2)+2*I3 ;
9771         S2++;
9772       }
9773       for (I3=I1-2*I2;I3<=N1;I3++) {
9774         J3 = I1-(I2)-(I3) ;
9775         S1++;
9776         J3 = -I1-2*(I2)+2*I3 ;
9777         S2++;
9778       }
9779     }
9780     if ((4*N1-1)%21 == 0) {
9781       I2 = (4*N1-1)/21 ;
9782       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
9783         J3 = -I1-2*(I2)+2*I3 ;
9784         S2++;
9785       }
9786       if (5*I1%7 == 0) {
9787         I3 = 5*I1/7 ;
9788         J1 = -2*I1+3*I3 ;
9789         if ((2*I1+J1)%3 == 0) {
9790           J2 = (2*I1+J1)/3 ;
9791           J3 = 3*I1-4*J2 ;
9792           S1++;
9793           S2++;
9794         }
9795       }
9796       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
9797         J3 = I1-(I2)-(I3) ;
9798         S1++;
9799         J3 = -I1-2*(I2)+2*I3 ;
9800         S2++;
9801       }
9802     }
9803     if ((2*N1-2)%9 == 0) {
9804       I2 = (2*N1-2)/9 ;
9805       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
9806         J3 = -I1-2*(I2)+2*I3 ;
9807         S2++;
9808         J3 = I1-(I2)-(I3) ;
9809         S1++;
9810       }
9811       if ((13*I1-1)%18 == 0) {
9812         I3 = (13*I1-1)/18 ;
9813         J1 = -2*I1+3*I3 ;
9814         if ((2*I1+J1)%3 == 0) {
9815           J2 = (2*I1+J1)/3 ;
9816           J3 = 3*I1-4*J2 ;
9817           S1++;
9818           S2++;
9819         }
9820       }
9821       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
9822         J3 = I1-(I2)-(I3) ;
9823         S1++;
9824         J3 = -I1-2*(I2)+2*I3 ;
9825         S2++;
9826       }
9827     }
9828     if ((4*N1-1)%18 == 0) {
9829       I2 = (4*N1-1)/18 ;
9830       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
9831         J3 = -I1-2*(I2)+2*I3 ;
9832         S2++;
9833         J3 = I1-(I2)-(I3) ;
9834         S1++;
9835       }
9836       if (13*I1%18 == 0) {
9837         I3 = 13*I1/18 ;
9838         J1 = -2*I1+3*I3 ;
9839         if ((2*I1+J1)%3 == 0) {
9840           J2 = (2*I1+J1)/3 ;
9841           J3 = 3*I1-4*J2 ;
9842           S1++;
9843           S2++;
9844         }
9845       }
9846       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
9847         J3 = I1-(I2)-(I3) ;
9848         S1++;
9849         J3 = -I1-2*(I2)+2*I3 ;
9850         S2++;
9851       }
9852     }
9853     for (I2=ceild(2*N1+1,9);I2<=floord(4*N1-7,12);I2++) {
9854       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
9855         J3 = I1-(I2)-(I3) ;
9856         S1++;
9857       }
9858       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
9859         J3 = -I1-2*(I2)+2*I3 ;
9860         S2++;
9861         J3 = I1-(I2)-(I3) ;
9862         S1++;
9863       }
9864       if ((2*I1+I2)%3 == 0) {
9865         I3 = (2*I1+I2)/3 ;
9866         J1 = -2*I1+3*I3 ;
9867         if ((2*I1+J1)%3 == 0) {
9868           J2 = (2*I1+J1)/3 ;
9869           J3 = 3*I1-4*J2 ;
9870           S1++;
9871           S2++;
9872         }
9873       }
9874       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
9875         J3 = I1-(I2)-(I3) ;
9876         S1++;
9877         J3 = -I1-2*(I2)+2*I3 ;
9878         S2++;
9879       }
9880     }
9881     if ((N1-1)%3 == 0) {
9882       I2 = (N1-1)/3 ;
9883       for (I3=ceild(2*N1+1,3);I3<=N1-1;I3++) {
9884         J3 = I1-(I2)-(I3) ;
9885         S1++;
9886       }
9887       if (-1%3 == 0) {
9888         I3 = (3*N1-1)/3 ;
9889         J1 = -2*I1+3*I3 ;
9890         if ((2*I1+J1)%3 == 0) {
9891           J2 = (2*I1+J1)/3 ;
9892           J3 = 3*I1-4*J2 ;
9893           S1++;
9894           S2++;
9895         }
9896       }
9897       J3 = I1-(I2)-(I3) ;
9898       S1++;
9899       J3 = -I1-2*(I2)+2*I3 ;
9900       S2++;
9901     }
9902     for (I2=ceild(N1+2,3);I2<=N1;I2++) {
9903       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
9904         J3 = I1-(I2)-(I3) ;
9905         S1++;
9906       }
9907     }
9908   }
9910 for (I1=ceild(6*N1+2,5);I1<=min(floord(21*N1-10,17),floord(6*N1+4,5));I1++) {
9911   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
9912     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
9913       J3 = -I1-2*(I2)+2*I3 ;
9914       S2++;
9915     }
9916   }
9917   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
9918     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
9919       J3 = -I1-2*(I2)+2*I3 ;
9920       S2++;
9921     }
9922     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
9923       J3 = I1-(I2)-(I3) ;
9924       S1++;
9925     }
9926   }
9927   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
9928     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9929       J3 = -I1-2*(I2)+2*I3 ;
9930       S2++;
9931     }
9932     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
9933       J3 = I1-(I2)-(I3) ;
9934       S1++;
9935       J3 = -I1-2*(I2)+2*I3 ;
9936       S2++;
9937     }
9938     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
9939       J3 = I1-(I2)-(I3) ;
9940       S1++;
9941     }
9942   }
9943   if (I1%7 == 0) {
9944     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
9945       J3 = -I1-2*(I2)+2*I3 ;
9946       S2++;
9947     }
9948     if (5*I1%7 == 0) {
9949       I3 = 5*I1/7 ;
9950       J1 = -2*I1+3*I3 ;
9951       if ((2*I1+J1)%3 == 0) {
9952         J2 = (2*I1+J1)/3 ;
9953         J3 = 3*I1-4*J2 ;
9954         S1++;
9955         S2++;
9956       }
9957     }
9958     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
9959       J3 = I1-(I2)-(I3) ;
9960       S1++;
9961       J3 = -I1-2*(I2)+2*I3 ;
9962       S2++;
9963     }
9964     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
9965       J3 = I1-(I2)-(I3) ;
9966       S1++;
9967     }
9968   }
9969   for (I2=ceild(I1+1,7);I2<=floord(-2*I1+3*N1-1,3);I2++) {
9970     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
9971       J3 = -I1-2*(I2)+2*I3 ;
9972       S2++;
9973     }
9974     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
9975       J3 = -I1-2*(I2)+2*I3 ;
9976       S2++;
9977       J3 = I1-(I2)-(I3) ;
9978       S1++;
9979     }
9980     if ((2*I1+I2)%3 == 0) {
9981       I3 = (2*I1+I2)/3 ;
9982       J1 = -2*I1+3*I3 ;
9983       if ((2*I1+J1)%3 == 0) {
9984         J2 = (2*I1+J1)/3 ;
9985         J3 = 3*I1-4*J2 ;
9986         S1++;
9987         S2++;
9988       }
9989     }
9990     for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
9991       J3 = I1-(I2)-(I3) ;
9992       S1++;
9993       J3 = -I1-2*(I2)+2*I3 ;
9994       S2++;
9995     }
9996     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
9997       J3 = I1-(I2)-(I3) ;
9998       S1++;
9999     }
10000   }
10001   for (I2=ceild(-2*I1+3*N1,3);I2<=floord(I1-2,6);I2++) {
10002     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10003       J3 = -I1-2*(I2)+2*I3 ;
10004       S2++;
10005     }
10006     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
10007       J3 = -I1-2*(I2)+2*I3 ;
10008       S2++;
10009       J3 = I1-(I2)-(I3) ;
10010       S1++;
10011     }
10012     if ((2*I1+I2)%3 == 0) {
10013       I3 = (2*I1+I2)/3 ;
10014       J1 = -2*I1+3*I3 ;
10015       if ((2*I1+J1)%3 == 0) {
10016         J2 = (2*I1+J1)/3 ;
10017         J3 = 3*I1-4*J2 ;
10018         S1++;
10019         S2++;
10020       }
10021     }
10022     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
10023       J3 = I1-(I2)-(I3) ;
10024       S1++;
10025       J3 = -I1-2*(I2)+2*I3 ;
10026       S2++;
10027     }
10028   }
10029   if (I1%6 == 0) {
10030     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
10031       J3 = -I1-2*(I2)+2*I3 ;
10032       S2++;
10033       J3 = I1-(I2)-(I3) ;
10034       S1++;
10035     }
10036     if (13*I1%18 == 0) {
10037       I3 = 13*I1/18 ;
10038       J1 = -2*I1+3*I3 ;
10039       if ((2*I1+J1)%3 == 0) {
10040         J2 = (2*I1+J1)/3 ;
10041         J3 = 3*I1-4*J2 ;
10042         S1++;
10043         S2++;
10044       }
10045     }
10046     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
10047       J3 = I1-(I2)-(I3) ;
10048       S1++;
10049       J3 = -I1-2*(I2)+2*I3 ;
10050       S2++;
10051     }
10052   }
10053   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
10054     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
10055       J3 = I1-(I2)-(I3) ;
10056       S1++;
10057     }
10058     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
10059       J3 = -I1-2*(I2)+2*I3 ;
10060       S2++;
10061       J3 = I1-(I2)-(I3) ;
10062       S1++;
10063     }
10064     if ((2*I1+I2)%3 == 0) {
10065       I3 = (2*I1+I2)/3 ;
10066       J1 = -2*I1+3*I3 ;
10067       if ((2*I1+J1)%3 == 0) {
10068         J2 = (2*I1+J1)/3 ;
10069         J3 = 3*I1-4*J2 ;
10070         S1++;
10071         S2++;
10072       }
10073     }
10074     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
10075       J3 = I1-(I2)-(I3) ;
10076       S1++;
10077       J3 = -I1-2*(I2)+2*I3 ;
10078       S2++;
10079     }
10080   }
10081   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
10082     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
10083       J3 = I1-(I2)-(I3) ;
10084       S1++;
10085     }
10086     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
10087       J3 = -I1-2*(I2)+2*I3 ;
10088       S2++;
10089       J3 = I1-(I2)-(I3) ;
10090       S1++;
10091     }
10092     if ((2*I1+I2)%3 == 0) {
10093       I3 = (2*I1+I2)/3 ;
10094       J1 = -2*I1+3*I3 ;
10095       if ((2*I1+J1)%3 == 0) {
10096         J2 = (2*I1+J1)/3 ;
10097         J3 = 3*I1-4*J2 ;
10098         S1++;
10099         S2++;
10100       }
10101     }
10102     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
10103       J3 = I1-(I2)-(I3) ;
10104       S1++;
10105       J3 = -I1-2*(I2)+2*I3 ;
10106       S2++;
10107     }
10108     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10109       J3 = -I1-2*(I2)+2*I3 ;
10110       S2++;
10111     }
10112   }
10113   if ((I1-1)%4 == 0) {
10114     I2 = (I1-1)/4 ;
10115     for (I3=2*I2+1;I3<=3*I2;I3++) {
10116       J3 = I1-(I2)-(I3) ;
10117       S1++;
10118     }
10119     if ((9*I1-1)%12 == 0) {
10120       I3 = (9*I1-1)/12 ;
10121       J1 = -2*I1+3*I3 ;
10122       if ((2*I1+J1)%3 == 0) {
10123         J2 = (2*I1+J1)/3 ;
10124         J3 = 3*I1-4*J2 ;
10125         S1++;
10126         S2++;
10127       }
10128     }
10129     if ((3*I1+1)%4 == 0) {
10130       I3 = (3*I1+1)/4 ;
10131       J3 = I1-(I2)-(I3) ;
10132       S1++;
10133       J3 = -I1-2*(I2)+2*I3 ;
10134       S2++;
10135     }
10136     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
10137       J3 = -I1-2*(I2)+2*I3 ;
10138       S2++;
10139     }
10140   }
10141   if (I1%4 == 0) {
10142     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
10143       J3 = I1-(I2)-(I3) ;
10144       S1++;
10145     }
10146     if (3*I1%4 == 0) {
10147       I3 = 3*I1/4 ;
10148       J1 = -2*I1+3*I3 ;
10149       if ((2*I1+J1)%3 == 0) {
10150         J2 = (2*I1+J1)/3 ;
10151         J3 = 3*I1-4*J2 ;
10152         S1++;
10153         S2++;
10154       }
10155     }
10156     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
10157       J3 = -I1-2*(I2)+2*I3 ;
10158       S2++;
10159     }
10160   }
10161   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
10162     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
10163       J3 = I1-(I2)-(I3) ;
10164       S1++;
10165     }
10166     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10167       J3 = -I1-2*(I2)+2*I3 ;
10168       S2++;
10169     }
10170   }
10171   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
10172     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
10173       J3 = I1-(I2)-(I3) ;
10174       S1++;
10175     }
10176   }
10178 if ((N1 <= 14) && (N1 >= 11)) {
10179   if (4*N1%3 == 0) {
10180     I1 = 4*N1/3 ;
10181     for (I2=1;I2<=floord(N1-3,6);I2++) {
10182       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10183         J3 = -I1-2*(I2)+2*I3 ;
10184         S2++;
10185       }
10186     }
10187     for (I2=ceild(N1,6);I2<=floord(4*N1-3,21);I2++) {
10188       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10189         J3 = -I1-2*(I2)+2*I3 ;
10190         S2++;
10191       }
10192       for (I3=I1-2*I2;I3<=N1;I3++) {
10193         J3 = I1-(I2)-(I3) ;
10194         S1++;
10195         J3 = -I1-2*(I2)+2*I3 ;
10196         S2++;
10197       }
10198     }
10199     if (4*N1%21 == 0) {
10200       I2 = 4*N1/21 ;
10201       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
10202         J3 = -I1-2*(I2)+2*I3 ;
10203         S2++;
10204       }
10205       if (5*I1%7 == 0) {
10206         I3 = 5*I1/7 ;
10207         J1 = -2*I1+3*I3 ;
10208         if ((2*I1+J1)%3 == 0) {
10209           J2 = (2*I1+J1)/3 ;
10210           J3 = 3*I1-4*J2 ;
10211           S1++;
10212           S2++;
10213         }
10214       }
10215       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
10216         J3 = I1-(I2)-(I3) ;
10217         S1++;
10218         J3 = -I1-2*(I2)+2*I3 ;
10219         S2++;
10220       }
10221     }
10222     if ((4*N1-3)%18 == 0) {
10223       I2 = (4*N1-3)/18 ;
10224       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
10225         J3 = -I1-2*(I2)+2*I3 ;
10226         S2++;
10227         J3 = I1-(I2)-(I3) ;
10228         S1++;
10229       }
10230       if ((13*I1-1)%18 == 0) {
10231         I3 = (13*I1-1)/18 ;
10232         J1 = -2*I1+3*I3 ;
10233         if ((2*I1+J1)%3 == 0) {
10234           J2 = (2*I1+J1)/3 ;
10235           J3 = 3*I1-4*J2 ;
10236           S1++;
10237           S2++;
10238         }
10239       }
10240       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
10241         J3 = I1-(I2)-(I3) ;
10242         S1++;
10243         J3 = -I1-2*(I2)+2*I3 ;
10244         S2++;
10245       }
10246     }
10247     if (2*N1%9 == 0) {
10248       I2 = 2*N1/9 ;
10249       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
10250         J3 = -I1-2*(I2)+2*I3 ;
10251         S2++;
10252         J3 = I1-(I2)-(I3) ;
10253         S1++;
10254       }
10255       if (13*I1%18 == 0) {
10256         I3 = 13*I1/18 ;
10257         J1 = -2*I1+3*I3 ;
10258         if ((2*I1+J1)%3 == 0) {
10259           J2 = (2*I1+J1)/3 ;
10260           J3 = 3*I1-4*J2 ;
10261           S1++;
10262           S2++;
10263         }
10264       }
10265       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
10266         J3 = I1-(I2)-(I3) ;
10267         S1++;
10268         J3 = -I1-2*(I2)+2*I3 ;
10269         S2++;
10270       }
10271     }
10272     for (I2=ceild(4*N1+3,18);I2<=floord(N1-3,3);I2++) {
10273       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
10274         J3 = I1-(I2)-(I3) ;
10275         S1++;
10276       }
10277       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
10278         J3 = -I1-2*(I2)+2*I3 ;
10279         S2++;
10280         J3 = I1-(I2)-(I3) ;
10281         S1++;
10282       }
10283       if ((2*I1+I2)%3 == 0) {
10284         I3 = (2*I1+I2)/3 ;
10285         J1 = -2*I1+3*I3 ;
10286         if ((2*I1+J1)%3 == 0) {
10287           J2 = (2*I1+J1)/3 ;
10288           J3 = 3*I1-4*J2 ;
10289           S1++;
10290           S2++;
10291         }
10292       }
10293       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
10294         J3 = I1-(I2)-(I3) ;
10295         S1++;
10296         J3 = -I1-2*(I2)+2*I3 ;
10297         S2++;
10298       }
10299     }
10300     if (N1%3 == 0) {
10301       for (I3=ceild(2*N1,3);I3<=floord(2*N1-1,2);I3++) {
10302         J3 = I1-(I2)-(I3) ;
10303         S1++;
10304       }
10305       J1 = -2*I1+3*N1 ;
10306       if ((2*I1+J1)%3 == 0) {
10307         J2 = (2*I1+J1)/3 ;
10308         J3 = 3*I1-4*J2 ;
10309         S1++;
10310         S2++;
10311       }
10312     }
10313     for (I2=ceild(2*N1+3,6);I2<=N1;I2++) {
10314       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
10315         J3 = I1-(I2)-(I3) ;
10316         S1++;
10317       }
10318     }
10319   }
10321 for (I1=ceild(6*N1+5,5);I1<=floord(21*N1-10,17);I1++) {
10322   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
10323     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10324       J3 = -I1-2*(I2)+2*I3 ;
10325       S2++;
10326     }
10327   }
10328   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
10329     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
10330       J3 = -I1-2*(I2)+2*I3 ;
10331       S2++;
10332     }
10333     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
10334       J3 = I1-(I2)-(I3) ;
10335       S1++;
10336     }
10337   }
10338   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
10339     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10340       J3 = -I1-2*(I2)+2*I3 ;
10341       S2++;
10342     }
10343     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
10344       J3 = I1-(I2)-(I3) ;
10345       S1++;
10346       J3 = -I1-2*(I2)+2*I3 ;
10347       S2++;
10348     }
10349     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
10350       J3 = I1-(I2)-(I3) ;
10351       S1++;
10352     }
10353   }
10354   if (I1%7 == 0) {
10355     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
10356       J3 = -I1-2*(I2)+2*I3 ;
10357       S2++;
10358     }
10359     if (5*I1%7 == 0) {
10360       I3 = 5*I1/7 ;
10361       J1 = -2*I1+3*I3 ;
10362       if ((2*I1+J1)%3 == 0) {
10363         J2 = (2*I1+J1)/3 ;
10364         J3 = 3*I1-4*J2 ;
10365         S1++;
10366         S2++;
10367       }
10368     }
10369     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
10370       J3 = I1-(I2)-(I3) ;
10371       S1++;
10372       J3 = -I1-2*(I2)+2*I3 ;
10373       S2++;
10374     }
10375     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
10376       J3 = I1-(I2)-(I3) ;
10377       S1++;
10378     }
10379   }
10380   for (I2=ceild(I1+1,7);I2<=floord(-2*I1+3*N1-1,3);I2++) {
10381     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10382       J3 = -I1-2*(I2)+2*I3 ;
10383       S2++;
10384     }
10385     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
10386       J3 = -I1-2*(I2)+2*I3 ;
10387       S2++;
10388       J3 = I1-(I2)-(I3) ;
10389       S1++;
10390     }
10391     if ((2*I1+I2)%3 == 0) {
10392       I3 = (2*I1+I2)/3 ;
10393       J1 = -2*I1+3*I3 ;
10394       if ((2*I1+J1)%3 == 0) {
10395         J2 = (2*I1+J1)/3 ;
10396         J3 = 3*I1-4*J2 ;
10397         S1++;
10398         S2++;
10399       }
10400     }
10401     for (I3=ceild(2*I1+I2+1,3);I3<=floord(2*I1+3*I2,3);I3++) {
10402       J3 = I1-(I2)-(I3) ;
10403       S1++;
10404       J3 = -I1-2*(I2)+2*I3 ;
10405       S2++;
10406     }
10407     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
10408       J3 = I1-(I2)-(I3) ;
10409       S1++;
10410     }
10411   }
10412   for (I2=ceild(-2*I1+3*N1,3);I2<=floord(I1-2,6);I2++) {
10413     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10414       J3 = -I1-2*(I2)+2*I3 ;
10415       S2++;
10416     }
10417     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
10418       J3 = -I1-2*(I2)+2*I3 ;
10419       S2++;
10420       J3 = I1-(I2)-(I3) ;
10421       S1++;
10422     }
10423     if ((2*I1+I2)%3 == 0) {
10424       I3 = (2*I1+I2)/3 ;
10425       J1 = -2*I1+3*I3 ;
10426       if ((2*I1+J1)%3 == 0) {
10427         J2 = (2*I1+J1)/3 ;
10428         J3 = 3*I1-4*J2 ;
10429         S1++;
10430         S2++;
10431       }
10432     }
10433     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
10434       J3 = I1-(I2)-(I3) ;
10435       S1++;
10436       J3 = -I1-2*(I2)+2*I3 ;
10437       S2++;
10438     }
10439   }
10440   if ((I1-1)%6 == 0) {
10441     I2 = (I1-1)/6 ;
10442     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
10443       J3 = -I1-2*(I2)+2*I3 ;
10444       S2++;
10445       J3 = I1-(I2)-(I3) ;
10446       S1++;
10447     }
10448     if ((13*I1-1)%18 == 0) {
10449       I3 = (13*I1-1)/18 ;
10450       J1 = -2*I1+3*I3 ;
10451       if ((2*I1+J1)%3 == 0) {
10452         J2 = (2*I1+J1)/3 ;
10453         J3 = 3*I1-4*J2 ;
10454         S1++;
10455         S2++;
10456       }
10457     }
10458     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
10459       J3 = I1-(I2)-(I3) ;
10460       S1++;
10461       J3 = -I1-2*(I2)+2*I3 ;
10462       S2++;
10463     }
10464   }
10465   if (I1%6 == 0) {
10466     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
10467       J3 = -I1-2*(I2)+2*I3 ;
10468       S2++;
10469       J3 = I1-(I2)-(I3) ;
10470       S1++;
10471     }
10472     if (13*I1%18 == 0) {
10473       I3 = 13*I1/18 ;
10474       J1 = -2*I1+3*I3 ;
10475       if ((2*I1+J1)%3 == 0) {
10476         J2 = (2*I1+J1)/3 ;
10477         J3 = 3*I1-4*J2 ;
10478         S1++;
10479         S2++;
10480       }
10481     }
10482     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
10483       J3 = I1-(I2)-(I3) ;
10484       S1++;
10485       J3 = -I1-2*(I2)+2*I3 ;
10486       S2++;
10487     }
10488   }
10489   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
10490     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
10491       J3 = I1-(I2)-(I3) ;
10492       S1++;
10493     }
10494     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
10495       J3 = -I1-2*(I2)+2*I3 ;
10496       S2++;
10497       J3 = I1-(I2)-(I3) ;
10498       S1++;
10499     }
10500     if ((2*I1+I2)%3 == 0) {
10501       I3 = (2*I1+I2)/3 ;
10502       J1 = -2*I1+3*I3 ;
10503       if ((2*I1+J1)%3 == 0) {
10504         J2 = (2*I1+J1)/3 ;
10505         J3 = 3*I1-4*J2 ;
10506         S1++;
10507         S2++;
10508       }
10509     }
10510     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
10511       J3 = I1-(I2)-(I3) ;
10512       S1++;
10513       J3 = -I1-2*(I2)+2*I3 ;
10514       S2++;
10515     }
10516   }
10517   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
10518     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
10519       J3 = I1-(I2)-(I3) ;
10520       S1++;
10521     }
10522     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
10523       J3 = -I1-2*(I2)+2*I3 ;
10524       S2++;
10525       J3 = I1-(I2)-(I3) ;
10526       S1++;
10527     }
10528     if ((2*I1+I2)%3 == 0) {
10529       I3 = (2*I1+I2)/3 ;
10530       J1 = -2*I1+3*I3 ;
10531       if ((2*I1+J1)%3 == 0) {
10532         J2 = (2*I1+J1)/3 ;
10533         J3 = 3*I1-4*J2 ;
10534         S1++;
10535         S2++;
10536       }
10537     }
10538     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
10539       J3 = I1-(I2)-(I3) ;
10540       S1++;
10541       J3 = -I1-2*(I2)+2*I3 ;
10542       S2++;
10543     }
10544     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10545       J3 = -I1-2*(I2)+2*I3 ;
10546       S2++;
10547     }
10548   }
10549   if ((I1-1)%4 == 0) {
10550     I2 = (I1-1)/4 ;
10551     for (I3=2*I2+1;I3<=3*I2;I3++) {
10552       J3 = I1-(I2)-(I3) ;
10553       S1++;
10554     }
10555     if ((9*I1-1)%12 == 0) {
10556       I3 = (9*I1-1)/12 ;
10557       J1 = -2*I1+3*I3 ;
10558       if ((2*I1+J1)%3 == 0) {
10559         J2 = (2*I1+J1)/3 ;
10560         J3 = 3*I1-4*J2 ;
10561         S1++;
10562         S2++;
10563       }
10564     }
10565     if ((3*I1+1)%4 == 0) {
10566       I3 = (3*I1+1)/4 ;
10567       J3 = I1-(I2)-(I3) ;
10568       S1++;
10569       J3 = -I1-2*(I2)+2*I3 ;
10570       S2++;
10571     }
10572     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
10573       J3 = -I1-2*(I2)+2*I3 ;
10574       S2++;
10575     }
10576   }
10577   if (I1%4 == 0) {
10578     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
10579       J3 = I1-(I2)-(I3) ;
10580       S1++;
10581     }
10582     if (3*I1%4 == 0) {
10583       I3 = 3*I1/4 ;
10584       J1 = -2*I1+3*I3 ;
10585       if ((2*I1+J1)%3 == 0) {
10586         J2 = (2*I1+J1)/3 ;
10587         J3 = 3*I1-4*J2 ;
10588         S1++;
10589         S2++;
10590       }
10591     }
10592     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
10593       J3 = -I1-2*(I2)+2*I3 ;
10594       S2++;
10595     }
10596   }
10597   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
10598     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
10599       J3 = I1-(I2)-(I3) ;
10600       S1++;
10601     }
10602     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10603       J3 = -I1-2*(I2)+2*I3 ;
10604       S2++;
10605     }
10606   }
10607   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
10608     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
10609       J3 = I1-(I2)-(I3) ;
10610       S1++;
10611     }
10612   }
10614 for (I1=max(ceild(21*N1-9,17),ceild(6*N1+2,5));I1<=min(floord(21*N1-7,17),floord(6*N1+4,5));I1++) {
10615   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
10616     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10617       J3 = -I1-2*(I2)+2*I3 ;
10618       S2++;
10619     }
10620   }
10621   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
10622     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
10623       J3 = -I1-2*(I2)+2*I3 ;
10624       S2++;
10625     }
10626     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
10627       J3 = I1-(I2)-(I3) ;
10628       S1++;
10629     }
10630   }
10631   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
10632     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10633       J3 = -I1-2*(I2)+2*I3 ;
10634       S2++;
10635     }
10636     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
10637       J3 = I1-(I2)-(I3) ;
10638       S1++;
10639       J3 = -I1-2*(I2)+2*I3 ;
10640       S2++;
10641     }
10642     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
10643       J3 = I1-(I2)-(I3) ;
10644       S1++;
10645     }
10646   }
10647   if (I1%7 == 0) {
10648     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
10649       J3 = -I1-2*(I2)+2*I3 ;
10650       S2++;
10651     }
10652     if (5*I1%7 == 0) {
10653       I3 = 5*I1/7 ;
10654       J1 = -2*I1+3*I3 ;
10655       if ((2*I1+J1)%3 == 0) {
10656         J2 = (2*I1+J1)/3 ;
10657         J3 = 3*I1-4*J2 ;
10658         S1++;
10659         S2++;
10660       }
10661     }
10662     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
10663       J3 = I1-(I2)-(I3) ;
10664       S1++;
10665       J3 = -I1-2*(I2)+2*I3 ;
10666       S2++;
10667     }
10668     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
10669       J3 = I1-(I2)-(I3) ;
10670       S1++;
10671     }
10672   }
10673   for (I2=ceild(-2*I1+3*N1,3);I2<=floord(I1-2,6);I2++) {
10674     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10675       J3 = -I1-2*(I2)+2*I3 ;
10676       S2++;
10677     }
10678     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
10679       J3 = -I1-2*(I2)+2*I3 ;
10680       S2++;
10681       J3 = I1-(I2)-(I3) ;
10682       S1++;
10683     }
10684     if ((2*I1+I2)%3 == 0) {
10685       I3 = (2*I1+I2)/3 ;
10686       J1 = -2*I1+3*I3 ;
10687       if ((2*I1+J1)%3 == 0) {
10688         J2 = (2*I1+J1)/3 ;
10689         J3 = 3*I1-4*J2 ;
10690         S1++;
10691         S2++;
10692       }
10693     }
10694     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
10695       J3 = I1-(I2)-(I3) ;
10696       S1++;
10697       J3 = -I1-2*(I2)+2*I3 ;
10698       S2++;
10699     }
10700   }
10701   if (I1%6 == 0) {
10702     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
10703       J3 = -I1-2*(I2)+2*I3 ;
10704       S2++;
10705       J3 = I1-(I2)-(I3) ;
10706       S1++;
10707     }
10708     if (13*I1%18 == 0) {
10709       I3 = 13*I1/18 ;
10710       J1 = -2*I1+3*I3 ;
10711       if ((2*I1+J1)%3 == 0) {
10712         J2 = (2*I1+J1)/3 ;
10713         J3 = 3*I1-4*J2 ;
10714         S1++;
10715         S2++;
10716       }
10717     }
10718     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
10719       J3 = I1-(I2)-(I3) ;
10720       S1++;
10721       J3 = -I1-2*(I2)+2*I3 ;
10722       S2++;
10723     }
10724   }
10725   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
10726     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
10727       J3 = I1-(I2)-(I3) ;
10728       S1++;
10729     }
10730     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
10731       J3 = -I1-2*(I2)+2*I3 ;
10732       S2++;
10733       J3 = I1-(I2)-(I3) ;
10734       S1++;
10735     }
10736     if ((2*I1+I2)%3 == 0) {
10737       I3 = (2*I1+I2)/3 ;
10738       J1 = -2*I1+3*I3 ;
10739       if ((2*I1+J1)%3 == 0) {
10740         J2 = (2*I1+J1)/3 ;
10741         J3 = 3*I1-4*J2 ;
10742         S1++;
10743         S2++;
10744       }
10745     }
10746     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
10747       J3 = I1-(I2)-(I3) ;
10748       S1++;
10749       J3 = -I1-2*(I2)+2*I3 ;
10750       S2++;
10751     }
10752   }
10753   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
10754     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
10755       J3 = I1-(I2)-(I3) ;
10756       S1++;
10757     }
10758     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
10759       J3 = -I1-2*(I2)+2*I3 ;
10760       S2++;
10761       J3 = I1-(I2)-(I3) ;
10762       S1++;
10763     }
10764     if ((2*I1+I2)%3 == 0) {
10765       I3 = (2*I1+I2)/3 ;
10766       J1 = -2*I1+3*I3 ;
10767       if ((2*I1+J1)%3 == 0) {
10768         J2 = (2*I1+J1)/3 ;
10769         J3 = 3*I1-4*J2 ;
10770         S1++;
10771         S2++;
10772       }
10773     }
10774     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
10775       J3 = I1-(I2)-(I3) ;
10776       S1++;
10777       J3 = -I1-2*(I2)+2*I3 ;
10778       S2++;
10779     }
10780     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10781       J3 = -I1-2*(I2)+2*I3 ;
10782       S2++;
10783     }
10784   }
10785   if ((I1-1)%4 == 0) {
10786     I2 = (I1-1)/4 ;
10787     for (I3=2*I2+1;I3<=3*I2;I3++) {
10788       J3 = I1-(I2)-(I3) ;
10789       S1++;
10790     }
10791     if ((9*I1-1)%12 == 0) {
10792       I3 = (9*I1-1)/12 ;
10793       J1 = -2*I1+3*I3 ;
10794       if ((2*I1+J1)%3 == 0) {
10795         J2 = (2*I1+J1)/3 ;
10796         J3 = 3*I1-4*J2 ;
10797         S1++;
10798         S2++;
10799       }
10800     }
10801     if ((3*I1+1)%4 == 0) {
10802       I3 = (3*I1+1)/4 ;
10803       J3 = I1-(I2)-(I3) ;
10804       S1++;
10805       J3 = -I1-2*(I2)+2*I3 ;
10806       S2++;
10807     }
10808     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
10809       J3 = -I1-2*(I2)+2*I3 ;
10810       S2++;
10811     }
10812   }
10813   if (I1%4 == 0) {
10814     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
10815       J3 = I1-(I2)-(I3) ;
10816       S1++;
10817     }
10818     if (3*I1%4 == 0) {
10819       I3 = 3*I1/4 ;
10820       J1 = -2*I1+3*I3 ;
10821       if ((2*I1+J1)%3 == 0) {
10822         J2 = (2*I1+J1)/3 ;
10823         J3 = 3*I1-4*J2 ;
10824         S1++;
10825         S2++;
10826       }
10827     }
10828     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
10829       J3 = -I1-2*(I2)+2*I3 ;
10830       S2++;
10831     }
10832   }
10833   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
10834     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
10835       J3 = I1-(I2)-(I3) ;
10836       S1++;
10837     }
10838     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10839       J3 = -I1-2*(I2)+2*I3 ;
10840       S2++;
10841     }
10842   }
10843   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
10844     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
10845       J3 = I1-(I2)-(I3) ;
10846       S1++;
10847     }
10848   }
10850 if (N1 == 14) {
10851   for (I2=1;I2<=2;I2++) {
10852     for (I3=ceild(19+2*I2,2);I3<=min(N1,floord(2*19+3*I2,3));I3++) {
10853       J3 = -(19)-2*(I2)+2*I3 ;
10854       S2++;
10855     }
10856   }
10857   for (I2=3;I2<=2;I2++) {
10858     for (I3=ceild(19+2*I2,2);I3<=19-2*I2-1;I3++) {
10859       J3 = -(19)-2*(I2)+2*I3 ;
10860       S2++;
10861     }
10862     for (I3=19-2*I2;I3<=N1;I3++) {
10863       J3 = 19-(I2)-(I3) ;
10864       S1++;
10865       J3 = -(19)-2*(I2)+2*I3 ;
10866       S2++;
10867     }
10868   }
10869   if (19%7 == 0) {
10870     for (I3=ceild(9*19/7,2);I3<=5*19/7-1;I3++) {
10871       J3 = -(19)-2*(I2)+2*I3 ;
10872       S2++;
10873     }
10874     if (5*19%7 == 0) {
10875       I3 = 5*19/7 ;
10876       J1 = -2*(19)+3*I3 ;
10877       if ((2*19+J1)%3 == 0) {
10878         J2 = (2*19+J1)/3 ;
10879         J3 = 3*19-4*J2 ;
10880         S1++;
10881         S2++;
10882       }
10883     }
10884     for (I3=ceild(15*19/7+1,3);I3<=N1;I3++) {
10885       J3 = 19-(I2)-(I3) ;
10886       S1++;
10887       J3 = -(19)-2*(I2)+2*I3 ;
10888       S2++;
10889     }
10890   }
10891   for (I3=4*3+1;I3<=floord(13*3+1,3);I3++) {
10892     J3 = -(19)-2*(I2)+2*I3 ;
10893     S2++;
10894     J3 = 19-(I2)-(I3) ;
10895     S1++;
10896   }
10897   if ((13*19-1)%18 == 0) {
10898     I3 = (13*19-1)/18 ;
10899     J1 = -2*(19)+3*I3 ;
10900     if ((2*19+J1)%3 == 0) {
10901       J2 = (2*19+J1)/3 ;
10902       J3 = 3*19-4*J2 ;
10903       S1++;
10904       S2++;
10905     }
10906   }
10907   for (I3=ceild(13*3+3,3);I3<=N1;I3++) {
10908     J3 = 19-(I2)-(I3) ;
10909     S1++;
10910     J3 = -(19)-2*(I2)+2*I3 ;
10911     S2++;
10912   }
10913   for (I3=ceild(-5*(4)+3*N1,2);I3<=floord(3*4+3*N1-2,4);I3++) {
10914     J3 = 19-(I2)-(I3) ;
10915     S1++;
10916   }
10917   for (I3=ceild(3*4+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
10918     J3 = -(19)-2*(I2)+2*I3 ;
10919     S2++;
10920     J3 = 19-(I2)-(I3) ;
10921     S1++;
10922   }
10923   J1 = -2*(19)+3*N1 ;
10924   if ((2*19+J1)%3 == 0) {
10925     J2 = (2*19+J1)/3 ;
10926     J3 = 3*19-4*J2 ;
10927     S1++;
10928     S2++;
10929   }
10930   for (I2=5;I2<=14;I2++) {
10931     for (I3=max(max(ceild(19-I2,2),19-2*I2),1);I3<=min(19-I2,N1);I3++) {
10932       J3 = 19-(I2)-(I3) ;
10933       S1++;
10934     }
10935   }
10937 if (N1 == 11) {
10938   for (I3=ceild(15+2*1,2);I3<=min(N1,floord(2*15+3*1,3));I3++) {
10939     J3 = -(15)-2*(I2)+2*I3 ;
10940     S2++;
10941   }
10942   for (I3=ceild(15+2*2,2);I3<=15-2*(2)-1;I3++) {
10943     J3 = -(15)-2*(I2)+2*I3 ;
10944     S2++;
10945   }
10946   for (I3=15-2*(2);I3<=N1;I3++) {
10947     J3 = 15-(I2)-(I3) ;
10948     S1++;
10949     J3 = -(15)-2*(I2)+2*I3 ;
10950     S2++;
10951   }
10952   for (I3=ceild(-5*(3)+3*N1,2);I3<=floord(3*3+3*N1-2,4);I3++) {
10953     J3 = 15-(I2)-(I3) ;
10954     S1++;
10955   }
10956   for (I3=ceild(3*3+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
10957     J3 = -(15)-2*(I2)+2*I3 ;
10958     S2++;
10959     J3 = 15-(I2)-(I3) ;
10960     S1++;
10961   }
10962   J1 = -2*(15)+3*N1 ;
10963   if ((2*15+J1)%3 == 0) {
10964     J2 = (2*15+J1)/3 ;
10965     J3 = 3*15-4*J2 ;
10966     S1++;
10967     S2++;
10968   }
10969   for (I2=4;I2<=11;I2++) {
10970     for (I3=max(max(ceild(15-I2,2),15-2*I2),1);I3<=min(15-I2,N1);I3++) {
10971       J3 = 15-(I2)-(I3) ;
10972       S1++;
10973     }
10974   }
10976 for (I1=max(ceild(21*N1-9,17),ceild(6*N1+5,5));I1<=floord(21*N1-7,17);I1++) {
10977   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
10978     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
10979       J3 = -I1-2*(I2)+2*I3 ;
10980       S2++;
10981     }
10982   }
10983   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
10984     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
10985       J3 = -I1-2*(I2)+2*I3 ;
10986       S2++;
10987     }
10988     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
10989       J3 = I1-(I2)-(I3) ;
10990       S1++;
10991     }
10992   }
10993   for (I2=ceild(I1,9);I2<=floord(I1-1,7);I2++) {
10994     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
10995       J3 = -I1-2*(I2)+2*I3 ;
10996       S2++;
10997     }
10998     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
10999       J3 = I1-(I2)-(I3) ;
11000       S1++;
11001       J3 = -I1-2*(I2)+2*I3 ;
11002       S2++;
11003     }
11004     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
11005       J3 = I1-(I2)-(I3) ;
11006       S1++;
11007     }
11008   }
11009   if (I1%7 == 0) {
11010     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
11011       J3 = -I1-2*(I2)+2*I3 ;
11012       S2++;
11013     }
11014     if (5*I1%7 == 0) {
11015       I3 = 5*I1/7 ;
11016       J1 = -2*I1+3*I3 ;
11017       if ((2*I1+J1)%3 == 0) {
11018         J2 = (2*I1+J1)/3 ;
11019         J3 = 3*I1-4*J2 ;
11020         S1++;
11021         S2++;
11022       }
11023     }
11024     for (I3=ceild(15*I1/7+1,3);I3<=floord(17*I1/7,3);I3++) {
11025       J3 = I1-(I2)-(I3) ;
11026       S1++;
11027       J3 = -I1-2*(I2)+2*I3 ;
11028       S2++;
11029     }
11030     for (I3=ceild(17*I1/7+1,3);I3<=min(N1,6*I1/7);I3++) {
11031       J3 = I1-(I2)-(I3) ;
11032       S1++;
11033     }
11034   }
11035   for (I2=ceild(-2*I1+3*N1,3);I2<=floord(I1-2,6);I2++) {
11036     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11037       J3 = -I1-2*(I2)+2*I3 ;
11038       S2++;
11039     }
11040     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
11041       J3 = -I1-2*(I2)+2*I3 ;
11042       S2++;
11043       J3 = I1-(I2)-(I3) ;
11044       S1++;
11045     }
11046     if ((2*I1+I2)%3 == 0) {
11047       I3 = (2*I1+I2)/3 ;
11048       J1 = -2*I1+3*I3 ;
11049       if ((2*I1+J1)%3 == 0) {
11050         J2 = (2*I1+J1)/3 ;
11051         J3 = 3*I1-4*J2 ;
11052         S1++;
11053         S2++;
11054       }
11055     }
11056     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11057       J3 = I1-(I2)-(I3) ;
11058       S1++;
11059       J3 = -I1-2*(I2)+2*I3 ;
11060       S2++;
11061     }
11062   }
11063   if ((I1-1)%6 == 0) {
11064     I2 = (I1-1)/6 ;
11065     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
11066       J3 = -I1-2*(I2)+2*I3 ;
11067       S2++;
11068       J3 = I1-(I2)-(I3) ;
11069       S1++;
11070     }
11071     if ((13*I1-1)%18 == 0) {
11072       I3 = (13*I1-1)/18 ;
11073       J1 = -2*I1+3*I3 ;
11074       if ((2*I1+J1)%3 == 0) {
11075         J2 = (2*I1+J1)/3 ;
11076         J3 = 3*I1-4*J2 ;
11077         S1++;
11078         S2++;
11079       }
11080     }
11081     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
11082       J3 = I1-(I2)-(I3) ;
11083       S1++;
11084       J3 = -I1-2*(I2)+2*I3 ;
11085       S2++;
11086     }
11087   }
11088   if (I1%6 == 0) {
11089     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
11090       J3 = -I1-2*(I2)+2*I3 ;
11091       S2++;
11092       J3 = I1-(I2)-(I3) ;
11093       S1++;
11094     }
11095     if (13*I1%18 == 0) {
11096       I3 = 13*I1/18 ;
11097       J1 = -2*I1+3*I3 ;
11098       if ((2*I1+J1)%3 == 0) {
11099         J2 = (2*I1+J1)/3 ;
11100         J3 = 3*I1-4*J2 ;
11101         S1++;
11102         S2++;
11103       }
11104     }
11105     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
11106       J3 = I1-(I2)-(I3) ;
11107       S1++;
11108       J3 = -I1-2*(I2)+2*I3 ;
11109       S2++;
11110     }
11111   }
11112   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
11113     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11114       J3 = I1-(I2)-(I3) ;
11115       S1++;
11116     }
11117     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
11118       J3 = -I1-2*(I2)+2*I3 ;
11119       S2++;
11120       J3 = I1-(I2)-(I3) ;
11121       S1++;
11122     }
11123     if ((2*I1+I2)%3 == 0) {
11124       I3 = (2*I1+I2)/3 ;
11125       J1 = -2*I1+3*I3 ;
11126       if ((2*I1+J1)%3 == 0) {
11127         J2 = (2*I1+J1)/3 ;
11128         J3 = 3*I1-4*J2 ;
11129         S1++;
11130         S2++;
11131       }
11132     }
11133     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11134       J3 = I1-(I2)-(I3) ;
11135       S1++;
11136       J3 = -I1-2*(I2)+2*I3 ;
11137       S2++;
11138     }
11139   }
11140   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
11141     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11142       J3 = I1-(I2)-(I3) ;
11143       S1++;
11144     }
11145     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
11146       J3 = -I1-2*(I2)+2*I3 ;
11147       S2++;
11148       J3 = I1-(I2)-(I3) ;
11149       S1++;
11150     }
11151     if ((2*I1+I2)%3 == 0) {
11152       I3 = (2*I1+I2)/3 ;
11153       J1 = -2*I1+3*I3 ;
11154       if ((2*I1+J1)%3 == 0) {
11155         J2 = (2*I1+J1)/3 ;
11156         J3 = 3*I1-4*J2 ;
11157         S1++;
11158         S2++;
11159       }
11160     }
11161     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
11162       J3 = I1-(I2)-(I3) ;
11163       S1++;
11164       J3 = -I1-2*(I2)+2*I3 ;
11165       S2++;
11166     }
11167     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11168       J3 = -I1-2*(I2)+2*I3 ;
11169       S2++;
11170     }
11171   }
11172   if ((I1-1)%4 == 0) {
11173     I2 = (I1-1)/4 ;
11174     for (I3=2*I2+1;I3<=3*I2;I3++) {
11175       J3 = I1-(I2)-(I3) ;
11176       S1++;
11177     }
11178     if ((9*I1-1)%12 == 0) {
11179       I3 = (9*I1-1)/12 ;
11180       J1 = -2*I1+3*I3 ;
11181       if ((2*I1+J1)%3 == 0) {
11182         J2 = (2*I1+J1)/3 ;
11183         J3 = 3*I1-4*J2 ;
11184         S1++;
11185         S2++;
11186       }
11187     }
11188     if ((3*I1+1)%4 == 0) {
11189       I3 = (3*I1+1)/4 ;
11190       J3 = I1-(I2)-(I3) ;
11191       S1++;
11192       J3 = -I1-2*(I2)+2*I3 ;
11193       S2++;
11194     }
11195     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
11196       J3 = -I1-2*(I2)+2*I3 ;
11197       S2++;
11198     }
11199   }
11200   if (I1%4 == 0) {
11201     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
11202       J3 = I1-(I2)-(I3) ;
11203       S1++;
11204     }
11205     if (3*I1%4 == 0) {
11206       I3 = 3*I1/4 ;
11207       J1 = -2*I1+3*I3 ;
11208       if ((2*I1+J1)%3 == 0) {
11209         J2 = (2*I1+J1)/3 ;
11210         J3 = 3*I1-4*J2 ;
11211         S1++;
11212         S2++;
11213       }
11214     }
11215     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
11216       J3 = -I1-2*(I2)+2*I3 ;
11217       S2++;
11218     }
11219   }
11220   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
11221     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
11222       J3 = I1-(I2)-(I3) ;
11223       S1++;
11224     }
11225     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11226       J3 = -I1-2*(I2)+2*I3 ;
11227       S2++;
11228     }
11229   }
11230   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
11231     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
11232       J3 = I1-(I2)-(I3) ;
11233       S1++;
11234     }
11235   }
11237 for (I1=max(ceild(21*N1-6,17),ceild(6*N1+2,5));I1<=min(min(floord(21*N1-1,17),floord(6*N1+4,5)),floord(4*N1-6,3));I1++) {
11238   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
11239     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11240       J3 = -I1-2*(I2)+2*I3 ;
11241       S2++;
11242     }
11243   }
11244   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
11245     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
11246       J3 = -I1-2*(I2)+2*I3 ;
11247       S2++;
11248     }
11249     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
11250       J3 = I1-(I2)-(I3) ;
11251       S1++;
11252     }
11253   }
11254   for (I2=ceild(I1,9);I2<=min(floord(I1-1,7),floord(-2*I1+3*N1-1,3));I2++) {
11255     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11256       J3 = -I1-2*(I2)+2*I3 ;
11257       S2++;
11258     }
11259     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
11260       J3 = I1-(I2)-(I3) ;
11261       S1++;
11262       J3 = -I1-2*(I2)+2*I3 ;
11263       S2++;
11264     }
11265     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
11266       J3 = I1-(I2)-(I3) ;
11267       S1++;
11268     }
11269   }
11270   for (I2=max(ceild(I1+1,7),ceild(-2*I1+3*N1,3));I2<=floord(I1-2,6);I2++) {
11271     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11272       J3 = -I1-2*(I2)+2*I3 ;
11273       S2++;
11274     }
11275     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
11276       J3 = -I1-2*(I2)+2*I3 ;
11277       S2++;
11278       J3 = I1-(I2)-(I3) ;
11279       S1++;
11280     }
11281     if ((2*I1+I2)%3 == 0) {
11282       I3 = (2*I1+I2)/3 ;
11283       J1 = -2*I1+3*I3 ;
11284       if ((2*I1+J1)%3 == 0) {
11285         J2 = (2*I1+J1)/3 ;
11286         J3 = 3*I1-4*J2 ;
11287         S1++;
11288         S2++;
11289       }
11290     }
11291     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11292       J3 = I1-(I2)-(I3) ;
11293       S1++;
11294       J3 = -I1-2*(I2)+2*I3 ;
11295       S2++;
11296     }
11297   }
11298   if (I1%6 == 0) {
11299     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
11300       J3 = -I1-2*(I2)+2*I3 ;
11301       S2++;
11302       J3 = I1-(I2)-(I3) ;
11303       S1++;
11304     }
11305     if (13*I1%18 == 0) {
11306       I3 = 13*I1/18 ;
11307       J1 = -2*I1+3*I3 ;
11308       if ((2*I1+J1)%3 == 0) {
11309         J2 = (2*I1+J1)/3 ;
11310         J3 = 3*I1-4*J2 ;
11311         S1++;
11312         S2++;
11313       }
11314     }
11315     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
11316       J3 = I1-(I2)-(I3) ;
11317       S1++;
11318       J3 = -I1-2*(I2)+2*I3 ;
11319       S2++;
11320     }
11321   }
11322   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
11323     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11324       J3 = I1-(I2)-(I3) ;
11325       S1++;
11326     }
11327     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
11328       J3 = -I1-2*(I2)+2*I3 ;
11329       S2++;
11330       J3 = I1-(I2)-(I3) ;
11331       S1++;
11332     }
11333     if ((2*I1+I2)%3 == 0) {
11334       I3 = (2*I1+I2)/3 ;
11335       J1 = -2*I1+3*I3 ;
11336       if ((2*I1+J1)%3 == 0) {
11337         J2 = (2*I1+J1)/3 ;
11338         J3 = 3*I1-4*J2 ;
11339         S1++;
11340         S2++;
11341       }
11342     }
11343     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11344       J3 = I1-(I2)-(I3) ;
11345       S1++;
11346       J3 = -I1-2*(I2)+2*I3 ;
11347       S2++;
11348     }
11349   }
11350   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
11351     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11352       J3 = I1-(I2)-(I3) ;
11353       S1++;
11354     }
11355     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
11356       J3 = -I1-2*(I2)+2*I3 ;
11357       S2++;
11358       J3 = I1-(I2)-(I3) ;
11359       S1++;
11360     }
11361     if ((2*I1+I2)%3 == 0) {
11362       I3 = (2*I1+I2)/3 ;
11363       J1 = -2*I1+3*I3 ;
11364       if ((2*I1+J1)%3 == 0) {
11365         J2 = (2*I1+J1)/3 ;
11366         J3 = 3*I1-4*J2 ;
11367         S1++;
11368         S2++;
11369       }
11370     }
11371     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
11372       J3 = I1-(I2)-(I3) ;
11373       S1++;
11374       J3 = -I1-2*(I2)+2*I3 ;
11375       S2++;
11376     }
11377     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11378       J3 = -I1-2*(I2)+2*I3 ;
11379       S2++;
11380     }
11381   }
11382   if ((I1-1)%4 == 0) {
11383     I2 = (I1-1)/4 ;
11384     for (I3=2*I2+1;I3<=3*I2;I3++) {
11385       J3 = I1-(I2)-(I3) ;
11386       S1++;
11387     }
11388     if ((9*I1-1)%12 == 0) {
11389       I3 = (9*I1-1)/12 ;
11390       J1 = -2*I1+3*I3 ;
11391       if ((2*I1+J1)%3 == 0) {
11392         J2 = (2*I1+J1)/3 ;
11393         J3 = 3*I1-4*J2 ;
11394         S1++;
11395         S2++;
11396       }
11397     }
11398     if ((3*I1+1)%4 == 0) {
11399       I3 = (3*I1+1)/4 ;
11400       J3 = I1-(I2)-(I3) ;
11401       S1++;
11402       J3 = -I1-2*(I2)+2*I3 ;
11403       S2++;
11404     }
11405     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
11406       J3 = -I1-2*(I2)+2*I3 ;
11407       S2++;
11408     }
11409   }
11410   if (I1%4 == 0) {
11411     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
11412       J3 = I1-(I2)-(I3) ;
11413       S1++;
11414     }
11415     if (3*I1%4 == 0) {
11416       I3 = 3*I1/4 ;
11417       J1 = -2*I1+3*I3 ;
11418       if ((2*I1+J1)%3 == 0) {
11419         J2 = (2*I1+J1)/3 ;
11420         J3 = 3*I1-4*J2 ;
11421         S1++;
11422         S2++;
11423       }
11424     }
11425     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
11426       J3 = -I1-2*(I2)+2*I3 ;
11427       S2++;
11428     }
11429   }
11430   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
11431     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
11432       J3 = I1-(I2)-(I3) ;
11433       S1++;
11434     }
11435     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11436       J3 = -I1-2*(I2)+2*I3 ;
11437       S2++;
11438     }
11439   }
11440   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
11441     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
11442       J3 = I1-(I2)-(I3) ;
11443       S1++;
11444     }
11445   }
11447 for (I1=ceild(21*N1,17);I1<=min(floord(6*N1+4,5),floord(4*N1-6,3));I1++) {
11448   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
11449     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11450       J3 = -I1-2*(I2)+2*I3 ;
11451       S2++;
11452     }
11453   }
11454   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
11455     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
11456       J3 = -I1-2*(I2)+2*I3 ;
11457       S2++;
11458     }
11459     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
11460       J3 = I1-(I2)-(I3) ;
11461       S1++;
11462     }
11463   }
11464   for (I2=ceild(I1,9);I2<=floord(-2*I1+3*N1-1,3);I2++) {
11465     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11466       J3 = -I1-2*(I2)+2*I3 ;
11467       S2++;
11468     }
11469     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
11470       J3 = I1-(I2)-(I3) ;
11471       S1++;
11472       J3 = -I1-2*(I2)+2*I3 ;
11473       S2++;
11474     }
11475     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
11476       J3 = I1-(I2)-(I3) ;
11477       S1++;
11478     }
11479   }
11480   if (I1%7 == 0) {
11481     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
11482       J3 = -I1-2*(I2)+2*I3 ;
11483       S2++;
11484     }
11485     if (5*I1%7 == 0) {
11486       I3 = 5*I1/7 ;
11487       J1 = -2*I1+3*I3 ;
11488       if ((2*I1+J1)%3 == 0) {
11489         J2 = (2*I1+J1)/3 ;
11490         J3 = 3*I1-4*J2 ;
11491         S1++;
11492         S2++;
11493       }
11494     }
11495     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
11496       J3 = I1-(I2)-(I3) ;
11497       S1++;
11498       J3 = -I1-2*(I2)+2*I3 ;
11499       S2++;
11500     }
11501   }
11502   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
11503     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11504       J3 = -I1-2*(I2)+2*I3 ;
11505       S2++;
11506     }
11507     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
11508       J3 = -I1-2*(I2)+2*I3 ;
11509       S2++;
11510       J3 = I1-(I2)-(I3) ;
11511       S1++;
11512     }
11513     if ((2*I1+I2)%3 == 0) {
11514       I3 = (2*I1+I2)/3 ;
11515       J1 = -2*I1+3*I3 ;
11516       if ((2*I1+J1)%3 == 0) {
11517         J2 = (2*I1+J1)/3 ;
11518         J3 = 3*I1-4*J2 ;
11519         S1++;
11520         S2++;
11521       }
11522     }
11523     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11524       J3 = I1-(I2)-(I3) ;
11525       S1++;
11526       J3 = -I1-2*(I2)+2*I3 ;
11527       S2++;
11528     }
11529   }
11530   if (I1%6 == 0) {
11531     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
11532       J3 = -I1-2*(I2)+2*I3 ;
11533       S2++;
11534       J3 = I1-(I2)-(I3) ;
11535       S1++;
11536     }
11537     if (13*I1%18 == 0) {
11538       I3 = 13*I1/18 ;
11539       J1 = -2*I1+3*I3 ;
11540       if ((2*I1+J1)%3 == 0) {
11541         J2 = (2*I1+J1)/3 ;
11542         J3 = 3*I1-4*J2 ;
11543         S1++;
11544         S2++;
11545       }
11546     }
11547     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
11548       J3 = I1-(I2)-(I3) ;
11549       S1++;
11550       J3 = -I1-2*(I2)+2*I3 ;
11551       S2++;
11552     }
11553   }
11554   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
11555     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11556       J3 = I1-(I2)-(I3) ;
11557       S1++;
11558     }
11559     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
11560       J3 = -I1-2*(I2)+2*I3 ;
11561       S2++;
11562       J3 = I1-(I2)-(I3) ;
11563       S1++;
11564     }
11565     if ((2*I1+I2)%3 == 0) {
11566       I3 = (2*I1+I2)/3 ;
11567       J1 = -2*I1+3*I3 ;
11568       if ((2*I1+J1)%3 == 0) {
11569         J2 = (2*I1+J1)/3 ;
11570         J3 = 3*I1-4*J2 ;
11571         S1++;
11572         S2++;
11573       }
11574     }
11575     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11576       J3 = I1-(I2)-(I3) ;
11577       S1++;
11578       J3 = -I1-2*(I2)+2*I3 ;
11579       S2++;
11580     }
11581   }
11582   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
11583     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11584       J3 = I1-(I2)-(I3) ;
11585       S1++;
11586     }
11587     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
11588       J3 = -I1-2*(I2)+2*I3 ;
11589       S2++;
11590       J3 = I1-(I2)-(I3) ;
11591       S1++;
11592     }
11593     if ((2*I1+I2)%3 == 0) {
11594       I3 = (2*I1+I2)/3 ;
11595       J1 = -2*I1+3*I3 ;
11596       if ((2*I1+J1)%3 == 0) {
11597         J2 = (2*I1+J1)/3 ;
11598         J3 = 3*I1-4*J2 ;
11599         S1++;
11600         S2++;
11601       }
11602     }
11603     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
11604       J3 = I1-(I2)-(I3) ;
11605       S1++;
11606       J3 = -I1-2*(I2)+2*I3 ;
11607       S2++;
11608     }
11609     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11610       J3 = -I1-2*(I2)+2*I3 ;
11611       S2++;
11612     }
11613   }
11614   if ((I1-1)%4 == 0) {
11615     I2 = (I1-1)/4 ;
11616     for (I3=2*I2+1;I3<=3*I2;I3++) {
11617       J3 = I1-(I2)-(I3) ;
11618       S1++;
11619     }
11620     if ((9*I1-1)%12 == 0) {
11621       I3 = (9*I1-1)/12 ;
11622       J1 = -2*I1+3*I3 ;
11623       if ((2*I1+J1)%3 == 0) {
11624         J2 = (2*I1+J1)/3 ;
11625         J3 = 3*I1-4*J2 ;
11626         S1++;
11627         S2++;
11628       }
11629     }
11630     if ((3*I1+1)%4 == 0) {
11631       I3 = (3*I1+1)/4 ;
11632       J3 = I1-(I2)-(I3) ;
11633       S1++;
11634       J3 = -I1-2*(I2)+2*I3 ;
11635       S2++;
11636     }
11637     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
11638       J3 = -I1-2*(I2)+2*I3 ;
11639       S2++;
11640     }
11641   }
11642   if (I1%4 == 0) {
11643     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
11644       J3 = I1-(I2)-(I3) ;
11645       S1++;
11646     }
11647     if (3*I1%4 == 0) {
11648       I3 = 3*I1/4 ;
11649       J1 = -2*I1+3*I3 ;
11650       if ((2*I1+J1)%3 == 0) {
11651         J2 = (2*I1+J1)/3 ;
11652         J3 = 3*I1-4*J2 ;
11653         S1++;
11654         S2++;
11655       }
11656     }
11657     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
11658       J3 = -I1-2*(I2)+2*I3 ;
11659       S2++;
11660     }
11661   }
11662   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
11663     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
11664       J3 = I1-(I2)-(I3) ;
11665       S1++;
11666     }
11667     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11668       J3 = -I1-2*(I2)+2*I3 ;
11669       S2++;
11670     }
11671   }
11672   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
11673     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
11674       J3 = I1-(I2)-(I3) ;
11675       S1++;
11676     }
11677   }
11679 if ((N1 <= 18) && (N1 >= 17)) {
11680   if ((4*N1-5)%3 == 0) {
11681     I1 = (4*N1-5)/3 ;
11682     for (I2=1;I2<=floord(N1-8,6);I2++) {
11683       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11684         J3 = -I1-2*(I2)+2*I3 ;
11685         S2++;
11686       }
11687     }
11688     for (I2=ceild(N1-5,6);I2<=floord(4*N1-8,27);I2++) {
11689       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
11690         J3 = -I1-2*(I2)+2*I3 ;
11691         S2++;
11692       }
11693       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
11694         J3 = I1-(I2)-(I3) ;
11695         S1++;
11696       }
11697     }
11698     for (I2=ceild(4*N1-5,27);I2<=floord(N1+7,9);I2++) {
11699       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11700         J3 = -I1-2*(I2)+2*I3 ;
11701         S2++;
11702       }
11703       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
11704         J3 = I1-(I2)-(I3) ;
11705         S1++;
11706         J3 = -I1-2*(I2)+2*I3 ;
11707         S2++;
11708       }
11709       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
11710         J3 = I1-(I2)-(I3) ;
11711         S1++;
11712       }
11713     }
11714     if ((4*N1-5)%21 == 0) {
11715       I2 = (4*N1-5)/21 ;
11716       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
11717         J3 = -I1-2*(I2)+2*I3 ;
11718         S2++;
11719       }
11720       if (5*I1%7 == 0) {
11721         I3 = 5*I1/7 ;
11722         J1 = -2*I1+3*I3 ;
11723         if ((2*I1+J1)%3 == 0) {
11724           J2 = (2*I1+J1)/3 ;
11725           J3 = 3*I1-4*J2 ;
11726           S1++;
11727           S2++;
11728         }
11729       }
11730       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
11731         J3 = I1-(I2)-(I3) ;
11732         S1++;
11733         J3 = -I1-2*(I2)+2*I3 ;
11734         S2++;
11735       }
11736     }
11737     for (I2=ceild(4*N1-2,21);I2<=floord(4*N1-11,18);I2++) {
11738       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11739         J3 = -I1-2*(I2)+2*I3 ;
11740         S2++;
11741       }
11742       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
11743         J3 = -I1-2*(I2)+2*I3 ;
11744         S2++;
11745         J3 = I1-(I2)-(I3) ;
11746         S1++;
11747       }
11748       if ((2*I1+I2)%3 == 0) {
11749         I3 = (2*I1+I2)/3 ;
11750         J1 = -2*I1+3*I3 ;
11751         if ((2*I1+J1)%3 == 0) {
11752           J2 = (2*I1+J1)/3 ;
11753           J3 = 3*I1-4*J2 ;
11754           S1++;
11755           S2++;
11756         }
11757       }
11758       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11759         J3 = I1-(I2)-(I3) ;
11760         S1++;
11761         J3 = -I1-2*(I2)+2*I3 ;
11762         S2++;
11763       }
11764     }
11765     if ((4*N1-5)%18 == 0) {
11766       I2 = (4*N1-5)/18 ;
11767       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
11768         J3 = -I1-2*(I2)+2*I3 ;
11769         S2++;
11770         J3 = I1-(I2)-(I3) ;
11771         S1++;
11772       }
11773       if (13*I1%18 == 0) {
11774         I3 = 13*I1/18 ;
11775         J1 = -2*I1+3*I3 ;
11776         if ((2*I1+J1)%3 == 0) {
11777           J2 = (2*I1+J1)/3 ;
11778           J3 = 3*I1-4*J2 ;
11779           S1++;
11780           S2++;
11781         }
11782       }
11783       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
11784         J3 = I1-(I2)-(I3) ;
11785         S1++;
11786         J3 = -I1-2*(I2)+2*I3 ;
11787         S2++;
11788       }
11789     }
11790     for (I2=ceild(2*N1-1,9);I2<=floord(N1-5,3);I2++) {
11791       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11792         J3 = I1-(I2)-(I3) ;
11793         S1++;
11794       }
11795       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
11796         J3 = -I1-2*(I2)+2*I3 ;
11797         S2++;
11798         J3 = I1-(I2)-(I3) ;
11799         S1++;
11800       }
11801       if ((2*I1+I2)%3 == 0) {
11802         I3 = (2*I1+I2)/3 ;
11803         J1 = -2*I1+3*I3 ;
11804         if ((2*I1+J1)%3 == 0) {
11805           J2 = (2*I1+J1)/3 ;
11806           J3 = 3*I1-4*J2 ;
11807           S1++;
11808           S2++;
11809         }
11810       }
11811       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11812         J3 = I1-(I2)-(I3) ;
11813         S1++;
11814         J3 = -I1-2*(I2)+2*I3 ;
11815         S2++;
11816       }
11817     }
11818     if ((N1-2)%3 == 0) {
11819       I2 = (N1-2)/3 ;
11820       for (I3=2*I2+1;I3<=3*I2;I3++) {
11821         J3 = I1-(I2)-(I3) ;
11822         S1++;
11823       }
11824       if ((9*I1-1)%12 == 0) {
11825         I3 = (9*I1-1)/12 ;
11826         J1 = -2*I1+3*I3 ;
11827         if ((2*I1+J1)%3 == 0) {
11828           J2 = (2*I1+J1)/3 ;
11829           J3 = 3*I1-4*J2 ;
11830           S1++;
11831           S2++;
11832         }
11833       }
11834       if ((3*I1+1)%4 == 0) {
11835         I3 = (3*I1+1)/4 ;
11836         J3 = I1-(I2)-(I3) ;
11837         S1++;
11838         J3 = -I1-2*(I2)+2*I3 ;
11839         S2++;
11840       }
11841       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
11842         J3 = -I1-2*(I2)+2*I3 ;
11843         S2++;
11844       }
11845     }
11846     if ((4*N1-5)%12 == 0) {
11847       I2 = (4*N1-5)/12 ;
11848       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
11849         J3 = I1-(I2)-(I3) ;
11850         S1++;
11851       }
11852       if (3*I1%4 == 0) {
11853         I3 = 3*I1/4 ;
11854         J1 = -2*I1+3*I3 ;
11855         if ((2*I1+J1)%3 == 0) {
11856           J2 = (2*I1+J1)/3 ;
11857           J3 = 3*I1-4*J2 ;
11858           S1++;
11859           S2++;
11860         }
11861       }
11862       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
11863         J3 = -I1-2*(I2)+2*I3 ;
11864         S2++;
11865       }
11866     }
11867     for (I2=ceild(2*N1-1,6);I2<=floord(2*N1+5,6);I2++) {
11868       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
11869         J3 = I1-(I2)-(I3) ;
11870         S1++;
11871       }
11872       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11873         J3 = -I1-2*(I2)+2*I3 ;
11874         S2++;
11875       }
11876     }
11877     for (I2=ceild(N1+4,3);I2<=N1;I2++) {
11878       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
11879         J3 = I1-(I2)-(I3) ;
11880         S1++;
11881       }
11882     }
11883   }
11885 for (I1=max(ceild(21*N1-6,17),ceild(6*N1+5,5));I1<=floord(21*N1-1,17);I1++) {
11886   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
11887     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
11888       J3 = -I1-2*(I2)+2*I3 ;
11889       S2++;
11890     }
11891   }
11892   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
11893     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
11894       J3 = -I1-2*(I2)+2*I3 ;
11895       S2++;
11896     }
11897     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
11898       J3 = I1-(I2)-(I3) ;
11899       S1++;
11900     }
11901   }
11902   for (I2=ceild(I1,9);I2<=min(floord(I1-1,7),floord(-2*I1+3*N1-1,3));I2++) {
11903     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11904       J3 = -I1-2*(I2)+2*I3 ;
11905       S2++;
11906     }
11907     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
11908       J3 = I1-(I2)-(I3) ;
11909       S1++;
11910       J3 = -I1-2*(I2)+2*I3 ;
11911       S2++;
11912     }
11913     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
11914       J3 = I1-(I2)-(I3) ;
11915       S1++;
11916     }
11917   }
11918   for (I2=max(ceild(I1+1,7),ceild(-2*I1+3*N1,3));I2<=floord(I1-2,6);I2++) {
11919     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
11920       J3 = -I1-2*(I2)+2*I3 ;
11921       S2++;
11922     }
11923     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
11924       J3 = -I1-2*(I2)+2*I3 ;
11925       S2++;
11926       J3 = I1-(I2)-(I3) ;
11927       S1++;
11928     }
11929     if ((2*I1+I2)%3 == 0) {
11930       I3 = (2*I1+I2)/3 ;
11931       J1 = -2*I1+3*I3 ;
11932       if ((2*I1+J1)%3 == 0) {
11933         J2 = (2*I1+J1)/3 ;
11934         J3 = 3*I1-4*J2 ;
11935         S1++;
11936         S2++;
11937       }
11938     }
11939     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
11940       J3 = I1-(I2)-(I3) ;
11941       S1++;
11942       J3 = -I1-2*(I2)+2*I3 ;
11943       S2++;
11944     }
11945   }
11946   if ((I1-1)%6 == 0) {
11947     I2 = (I1-1)/6 ;
11948     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
11949       J3 = -I1-2*(I2)+2*I3 ;
11950       S2++;
11951       J3 = I1-(I2)-(I3) ;
11952       S1++;
11953     }
11954     if ((13*I1-1)%18 == 0) {
11955       I3 = (13*I1-1)/18 ;
11956       J1 = -2*I1+3*I3 ;
11957       if ((2*I1+J1)%3 == 0) {
11958         J2 = (2*I1+J1)/3 ;
11959         J3 = 3*I1-4*J2 ;
11960         S1++;
11961         S2++;
11962       }
11963     }
11964     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
11965       J3 = I1-(I2)-(I3) ;
11966       S1++;
11967       J3 = -I1-2*(I2)+2*I3 ;
11968       S2++;
11969     }
11970   }
11971   if (I1%6 == 0) {
11972     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
11973       J3 = -I1-2*(I2)+2*I3 ;
11974       S2++;
11975       J3 = I1-(I2)-(I3) ;
11976       S1++;
11977     }
11978     if (13*I1%18 == 0) {
11979       I3 = 13*I1/18 ;
11980       J1 = -2*I1+3*I3 ;
11981       if ((2*I1+J1)%3 == 0) {
11982         J2 = (2*I1+J1)/3 ;
11983         J3 = 3*I1-4*J2 ;
11984         S1++;
11985         S2++;
11986       }
11987     }
11988     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
11989       J3 = I1-(I2)-(I3) ;
11990       S1++;
11991       J3 = -I1-2*(I2)+2*I3 ;
11992       S2++;
11993     }
11994   }
11995   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
11996     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
11997       J3 = I1-(I2)-(I3) ;
11998       S1++;
11999     }
12000     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
12001       J3 = -I1-2*(I2)+2*I3 ;
12002       S2++;
12003       J3 = I1-(I2)-(I3) ;
12004       S1++;
12005     }
12006     if ((2*I1+I2)%3 == 0) {
12007       I3 = (2*I1+I2)/3 ;
12008       J1 = -2*I1+3*I3 ;
12009       if ((2*I1+J1)%3 == 0) {
12010         J2 = (2*I1+J1)/3 ;
12011         J3 = 3*I1-4*J2 ;
12012         S1++;
12013         S2++;
12014       }
12015     }
12016     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12017       J3 = I1-(I2)-(I3) ;
12018       S1++;
12019       J3 = -I1-2*(I2)+2*I3 ;
12020       S2++;
12021     }
12022   }
12023   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
12024     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
12025       J3 = I1-(I2)-(I3) ;
12026       S1++;
12027     }
12028     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
12029       J3 = -I1-2*(I2)+2*I3 ;
12030       S2++;
12031       J3 = I1-(I2)-(I3) ;
12032       S1++;
12033     }
12034     if ((2*I1+I2)%3 == 0) {
12035       I3 = (2*I1+I2)/3 ;
12036       J1 = -2*I1+3*I3 ;
12037       if ((2*I1+J1)%3 == 0) {
12038         J2 = (2*I1+J1)/3 ;
12039         J3 = 3*I1-4*J2 ;
12040         S1++;
12041         S2++;
12042       }
12043     }
12044     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
12045       J3 = I1-(I2)-(I3) ;
12046       S1++;
12047       J3 = -I1-2*(I2)+2*I3 ;
12048       S2++;
12049     }
12050     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12051       J3 = -I1-2*(I2)+2*I3 ;
12052       S2++;
12053     }
12054   }
12055   if ((I1-1)%4 == 0) {
12056     I2 = (I1-1)/4 ;
12057     for (I3=2*I2+1;I3<=3*I2;I3++) {
12058       J3 = I1-(I2)-(I3) ;
12059       S1++;
12060     }
12061     if ((9*I1-1)%12 == 0) {
12062       I3 = (9*I1-1)/12 ;
12063       J1 = -2*I1+3*I3 ;
12064       if ((2*I1+J1)%3 == 0) {
12065         J2 = (2*I1+J1)/3 ;
12066         J3 = 3*I1-4*J2 ;
12067         S1++;
12068         S2++;
12069       }
12070     }
12071     if ((3*I1+1)%4 == 0) {
12072       I3 = (3*I1+1)/4 ;
12073       J3 = I1-(I2)-(I3) ;
12074       S1++;
12075       J3 = -I1-2*(I2)+2*I3 ;
12076       S2++;
12077     }
12078     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
12079       J3 = -I1-2*(I2)+2*I3 ;
12080       S2++;
12081     }
12082   }
12083   if (I1%4 == 0) {
12084     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
12085       J3 = I1-(I2)-(I3) ;
12086       S1++;
12087     }
12088     if (3*I1%4 == 0) {
12089       I3 = 3*I1/4 ;
12090       J1 = -2*I1+3*I3 ;
12091       if ((2*I1+J1)%3 == 0) {
12092         J2 = (2*I1+J1)/3 ;
12093         J3 = 3*I1-4*J2 ;
12094         S1++;
12095         S2++;
12096       }
12097     }
12098     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
12099       J3 = -I1-2*(I2)+2*I3 ;
12100       S2++;
12101     }
12102   }
12103   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
12104     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
12105       J3 = I1-(I2)-(I3) ;
12106       S1++;
12107     }
12108     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12109       J3 = -I1-2*(I2)+2*I3 ;
12110       S2++;
12111     }
12112   }
12113   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
12114     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
12115       J3 = I1-(I2)-(I3) ;
12116       S1++;
12117     }
12118   }
12120 if ((N1 >= 18) && (N1 <= 19)) {
12121   if ((4*N1-4)%3 == 0) {
12122     I1 = (4*N1-4)/3 ;
12123     for (I2=1;I2<=floord(N1-7,6);I2++) {
12124       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12125         J3 = -I1-2*(I2)+2*I3 ;
12126         S2++;
12127       }
12128     }
12129     for (I2=ceild(N1-4,6);I2<=floord(4*N1-7,27);I2++) {
12130       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
12131         J3 = -I1-2*(I2)+2*I3 ;
12132         S2++;
12133       }
12134       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
12135         J3 = I1-(I2)-(I3) ;
12136         S1++;
12137       }
12138     }
12139     for (I2=ceild(4*N1-4,27);I2<=floord(N1+5,9);I2++) {
12140       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12141         J3 = -I1-2*(I2)+2*I3 ;
12142         S2++;
12143       }
12144       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
12145         J3 = I1-(I2)-(I3) ;
12146         S1++;
12147         J3 = -I1-2*(I2)+2*I3 ;
12148         S2++;
12149       }
12150       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
12151         J3 = I1-(I2)-(I3) ;
12152         S1++;
12153       }
12154     }
12155     for (I2=ceild(N1+8,9);I2<=floord(4*N1-7,21);I2++) {
12156       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12157         J3 = -I1-2*(I2)+2*I3 ;
12158         S2++;
12159       }
12160       for (I3=I1-2*I2;I3<=N1;I3++) {
12161         J3 = I1-(I2)-(I3) ;
12162         S1++;
12163         J3 = -I1-2*(I2)+2*I3 ;
12164         S2++;
12165       }
12166     }
12167     if ((4*N1-4)%21 == 0) {
12168       I2 = (4*N1-4)/21 ;
12169       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
12170         J3 = -I1-2*(I2)+2*I3 ;
12171         S2++;
12172       }
12173       if (5*I1%7 == 0) {
12174         I3 = 5*I1/7 ;
12175         J1 = -2*I1+3*I3 ;
12176         if ((2*I1+J1)%3 == 0) {
12177           J2 = (2*I1+J1)/3 ;
12178           J3 = 3*I1-4*J2 ;
12179           S1++;
12180           S2++;
12181         }
12182       }
12183       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
12184         J3 = I1-(I2)-(I3) ;
12185         S1++;
12186         J3 = -I1-2*(I2)+2*I3 ;
12187         S2++;
12188       }
12189     }
12190     for (I2=ceild(4*N1-1,21);I2<=floord(2*N1-5,9);I2++) {
12191       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12192         J3 = -I1-2*(I2)+2*I3 ;
12193         S2++;
12194       }
12195       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
12196         J3 = -I1-2*(I2)+2*I3 ;
12197         S2++;
12198         J3 = I1-(I2)-(I3) ;
12199         S1++;
12200       }
12201       if ((2*I1+I2)%3 == 0) {
12202         I3 = (2*I1+I2)/3 ;
12203         J1 = -2*I1+3*I3 ;
12204         if ((2*I1+J1)%3 == 0) {
12205           J2 = (2*I1+J1)/3 ;
12206           J3 = 3*I1-4*J2 ;
12207           S1++;
12208           S2++;
12209         }
12210       }
12211       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12212         J3 = I1-(I2)-(I3) ;
12213         S1++;
12214         J3 = -I1-2*(I2)+2*I3 ;
12215         S2++;
12216       }
12217     }
12218     if ((4*N1-7)%18 == 0) {
12219       I2 = (4*N1-7)/18 ;
12220       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
12221         J3 = -I1-2*(I2)+2*I3 ;
12222         S2++;
12223         J3 = I1-(I2)-(I3) ;
12224         S1++;
12225       }
12226       if ((13*I1-1)%18 == 0) {
12227         I3 = (13*I1-1)/18 ;
12228         J1 = -2*I1+3*I3 ;
12229         if ((2*I1+J1)%3 == 0) {
12230           J2 = (2*I1+J1)/3 ;
12231           J3 = 3*I1-4*J2 ;
12232           S1++;
12233           S2++;
12234         }
12235       }
12236       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
12237         J3 = I1-(I2)-(I3) ;
12238         S1++;
12239         J3 = -I1-2*(I2)+2*I3 ;
12240         S2++;
12241       }
12242     }
12243     if ((2*N1-2)%9 == 0) {
12244       I2 = (2*N1-2)/9 ;
12245       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
12246         J3 = -I1-2*(I2)+2*I3 ;
12247         S2++;
12248         J3 = I1-(I2)-(I3) ;
12249         S1++;
12250       }
12251       if (13*I1%18 == 0) {
12252         I3 = 13*I1/18 ;
12253         J1 = -2*I1+3*I3 ;
12254         if ((2*I1+J1)%3 == 0) {
12255           J2 = (2*I1+J1)/3 ;
12256           J3 = 3*I1-4*J2 ;
12257           S1++;
12258           S2++;
12259         }
12260       }
12261       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
12262         J3 = I1-(I2)-(I3) ;
12263         S1++;
12264         J3 = -I1-2*(I2)+2*I3 ;
12265         S2++;
12266       }
12267     }
12268     for (I2=ceild(4*N1-1,18);I2<=floord(N1-4,3);I2++) {
12269       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
12270         J3 = I1-(I2)-(I3) ;
12271         S1++;
12272       }
12273       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
12274         J3 = -I1-2*(I2)+2*I3 ;
12275         S2++;
12276         J3 = I1-(I2)-(I3) ;
12277         S1++;
12278       }
12279       if ((2*I1+I2)%3 == 0) {
12280         I3 = (2*I1+I2)/3 ;
12281         J1 = -2*I1+3*I3 ;
12282         if ((2*I1+J1)%3 == 0) {
12283           J2 = (2*I1+J1)/3 ;
12284           J3 = 3*I1-4*J2 ;
12285           S1++;
12286           S2++;
12287         }
12288       }
12289       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12290         J3 = I1-(I2)-(I3) ;
12291         S1++;
12292         J3 = -I1-2*(I2)+2*I3 ;
12293         S2++;
12294       }
12295     }
12296     if ((N1-1)%3 == 0) {
12297       I2 = (N1-1)/3 ;
12298       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
12299         J3 = I1-(I2)-(I3) ;
12300         S1++;
12301       }
12302       if (3*I1%4 == 0) {
12303         I3 = 3*I1/4 ;
12304         J1 = -2*I1+3*I3 ;
12305         if ((2*I1+J1)%3 == 0) {
12306           J2 = (2*I1+J1)/3 ;
12307           J3 = 3*I1-4*J2 ;
12308           S1++;
12309           S2++;
12310         }
12311       }
12312       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
12313         J3 = -I1-2*(I2)+2*I3 ;
12314         S2++;
12315       }
12316     }
12317     for (I2=ceild(4*N1-1,12);I2<=floord(N1+2,3);I2++) {
12318       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
12319         J3 = I1-(I2)-(I3) ;
12320         S1++;
12321       }
12322       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12323         J3 = -I1-2*(I2)+2*I3 ;
12324         S2++;
12325       }
12326     }
12327     for (I2=ceild(2*N1+7,6);I2<=N1;I2++) {
12328       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
12329         J3 = I1-(I2)-(I3) ;
12330         S1++;
12331       }
12332     }
12333   }
12335 for (I1=max(ceild(21*N1,17),ceild(6*N1+5,5));I1<=floord(21*N1+2,17);I1++) {
12336   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
12337     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12338       J3 = -I1-2*(I2)+2*I3 ;
12339       S2++;
12340     }
12341   }
12342   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
12343     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
12344       J3 = -I1-2*(I2)+2*I3 ;
12345       S2++;
12346     }
12347     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
12348       J3 = I1-(I2)-(I3) ;
12349       S1++;
12350     }
12351   }
12352   for (I2=ceild(I1,9);I2<=floord(-2*I1+3*N1-1,3);I2++) {
12353     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12354       J3 = -I1-2*(I2)+2*I3 ;
12355       S2++;
12356     }
12357     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
12358       J3 = I1-(I2)-(I3) ;
12359       S1++;
12360       J3 = -I1-2*(I2)+2*I3 ;
12361       S2++;
12362     }
12363     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
12364       J3 = I1-(I2)-(I3) ;
12365       S1++;
12366     }
12367   }
12368   if (I1%7 == 0) {
12369     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
12370       J3 = -I1-2*(I2)+2*I3 ;
12371       S2++;
12372     }
12373     if (5*I1%7 == 0) {
12374       I3 = 5*I1/7 ;
12375       J1 = -2*I1+3*I3 ;
12376       if ((2*I1+J1)%3 == 0) {
12377         J2 = (2*I1+J1)/3 ;
12378         J3 = 3*I1-4*J2 ;
12379         S1++;
12380         S2++;
12381       }
12382     }
12383     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
12384       J3 = I1-(I2)-(I3) ;
12385       S1++;
12386       J3 = -I1-2*(I2)+2*I3 ;
12387       S2++;
12388     }
12389   }
12390   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
12391     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12392       J3 = -I1-2*(I2)+2*I3 ;
12393       S2++;
12394     }
12395     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
12396       J3 = -I1-2*(I2)+2*I3 ;
12397       S2++;
12398       J3 = I1-(I2)-(I3) ;
12399       S1++;
12400     }
12401     if ((2*I1+I2)%3 == 0) {
12402       I3 = (2*I1+I2)/3 ;
12403       J1 = -2*I1+3*I3 ;
12404       if ((2*I1+J1)%3 == 0) {
12405         J2 = (2*I1+J1)/3 ;
12406         J3 = 3*I1-4*J2 ;
12407         S1++;
12408         S2++;
12409       }
12410     }
12411     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12412       J3 = I1-(I2)-(I3) ;
12413       S1++;
12414       J3 = -I1-2*(I2)+2*I3 ;
12415       S2++;
12416     }
12417   }
12418   if ((I1-1)%6 == 0) {
12419     I2 = (I1-1)/6 ;
12420     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
12421       J3 = -I1-2*(I2)+2*I3 ;
12422       S2++;
12423       J3 = I1-(I2)-(I3) ;
12424       S1++;
12425     }
12426     if ((13*I1-1)%18 == 0) {
12427       I3 = (13*I1-1)/18 ;
12428       J1 = -2*I1+3*I3 ;
12429       if ((2*I1+J1)%3 == 0) {
12430         J2 = (2*I1+J1)/3 ;
12431         J3 = 3*I1-4*J2 ;
12432         S1++;
12433         S2++;
12434       }
12435     }
12436     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
12437       J3 = I1-(I2)-(I3) ;
12438       S1++;
12439       J3 = -I1-2*(I2)+2*I3 ;
12440       S2++;
12441     }
12442   }
12443   if (I1%6 == 0) {
12444     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
12445       J3 = -I1-2*(I2)+2*I3 ;
12446       S2++;
12447       J3 = I1-(I2)-(I3) ;
12448       S1++;
12449     }
12450     if (13*I1%18 == 0) {
12451       I3 = 13*I1/18 ;
12452       J1 = -2*I1+3*I3 ;
12453       if ((2*I1+J1)%3 == 0) {
12454         J2 = (2*I1+J1)/3 ;
12455         J3 = 3*I1-4*J2 ;
12456         S1++;
12457         S2++;
12458       }
12459     }
12460     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
12461       J3 = I1-(I2)-(I3) ;
12462       S1++;
12463       J3 = -I1-2*(I2)+2*I3 ;
12464       S2++;
12465     }
12466   }
12467   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
12468     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
12469       J3 = I1-(I2)-(I3) ;
12470       S1++;
12471     }
12472     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
12473       J3 = -I1-2*(I2)+2*I3 ;
12474       S2++;
12475       J3 = I1-(I2)-(I3) ;
12476       S1++;
12477     }
12478     if ((2*I1+I2)%3 == 0) {
12479       I3 = (2*I1+I2)/3 ;
12480       J1 = -2*I1+3*I3 ;
12481       if ((2*I1+J1)%3 == 0) {
12482         J2 = (2*I1+J1)/3 ;
12483         J3 = 3*I1-4*J2 ;
12484         S1++;
12485         S2++;
12486       }
12487     }
12488     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12489       J3 = I1-(I2)-(I3) ;
12490       S1++;
12491       J3 = -I1-2*(I2)+2*I3 ;
12492       S2++;
12493     }
12494   }
12495   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
12496     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
12497       J3 = I1-(I2)-(I3) ;
12498       S1++;
12499     }
12500     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
12501       J3 = -I1-2*(I2)+2*I3 ;
12502       S2++;
12503       J3 = I1-(I2)-(I3) ;
12504       S1++;
12505     }
12506     if ((2*I1+I2)%3 == 0) {
12507       I3 = (2*I1+I2)/3 ;
12508       J1 = -2*I1+3*I3 ;
12509       if ((2*I1+J1)%3 == 0) {
12510         J2 = (2*I1+J1)/3 ;
12511         J3 = 3*I1-4*J2 ;
12512         S1++;
12513         S2++;
12514       }
12515     }
12516     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
12517       J3 = I1-(I2)-(I3) ;
12518       S1++;
12519       J3 = -I1-2*(I2)+2*I3 ;
12520       S2++;
12521     }
12522     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12523       J3 = -I1-2*(I2)+2*I3 ;
12524       S2++;
12525     }
12526   }
12527   if ((I1-1)%4 == 0) {
12528     I2 = (I1-1)/4 ;
12529     for (I3=2*I2+1;I3<=3*I2;I3++) {
12530       J3 = I1-(I2)-(I3) ;
12531       S1++;
12532     }
12533     if ((9*I1-1)%12 == 0) {
12534       I3 = (9*I1-1)/12 ;
12535       J1 = -2*I1+3*I3 ;
12536       if ((2*I1+J1)%3 == 0) {
12537         J2 = (2*I1+J1)/3 ;
12538         J3 = 3*I1-4*J2 ;
12539         S1++;
12540         S2++;
12541       }
12542     }
12543     if ((3*I1+1)%4 == 0) {
12544       I3 = (3*I1+1)/4 ;
12545       J3 = I1-(I2)-(I3) ;
12546       S1++;
12547       J3 = -I1-2*(I2)+2*I3 ;
12548       S2++;
12549     }
12550     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
12551       J3 = -I1-2*(I2)+2*I3 ;
12552       S2++;
12553     }
12554   }
12555   if (I1%4 == 0) {
12556     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
12557       J3 = I1-(I2)-(I3) ;
12558       S1++;
12559     }
12560     if (3*I1%4 == 0) {
12561       I3 = 3*I1/4 ;
12562       J1 = -2*I1+3*I3 ;
12563       if ((2*I1+J1)%3 == 0) {
12564         J2 = (2*I1+J1)/3 ;
12565         J3 = 3*I1-4*J2 ;
12566         S1++;
12567         S2++;
12568       }
12569     }
12570     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
12571       J3 = -I1-2*(I2)+2*I3 ;
12572       S2++;
12573     }
12574   }
12575   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
12576     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
12577       J3 = I1-(I2)-(I3) ;
12578       S1++;
12579     }
12580     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12581       J3 = -I1-2*(I2)+2*I3 ;
12582       S2++;
12583     }
12584   }
12585   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
12586     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
12587       J3 = I1-(I2)-(I3) ;
12588       S1++;
12589     }
12590   }
12592 for (I1=max(ceild(21*N1+3,17),ceild(6*N1+5,5));I1<=min(floord(9*N1-3,7),floord(4*N1-6,3));I1++) {
12593   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
12594     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12595       J3 = -I1-2*(I2)+2*I3 ;
12596       S2++;
12597     }
12598   }
12599   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,9);I2++) {
12600     for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
12601       J3 = -I1-2*(I2)+2*I3 ;
12602       S2++;
12603     }
12604     for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
12605       J3 = I1-(I2)-(I3) ;
12606       S1++;
12607     }
12608   }
12609   for (I2=ceild(I1,9);I2<=floord(-2*I1+3*N1-1,3);I2++) {
12610     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12611       J3 = -I1-2*(I2)+2*I3 ;
12612       S2++;
12613     }
12614     for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
12615       J3 = I1-(I2)-(I3) ;
12616       S1++;
12617       J3 = -I1-2*(I2)+2*I3 ;
12618       S2++;
12619     }
12620     for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
12621       J3 = I1-(I2)-(I3) ;
12622       S1++;
12623     }
12624   }
12625   for (I2=ceild(-2*I1+3*N1,3);I2<=floord(I1-1,7);I2++) {
12626     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12627       J3 = -I1-2*(I2)+2*I3 ;
12628       S2++;
12629     }
12630     for (I3=I1-2*I2;I3<=N1;I3++) {
12631       J3 = I1-(I2)-(I3) ;
12632       S1++;
12633       J3 = -I1-2*(I2)+2*I3 ;
12634       S2++;
12635     }
12636   }
12637   if (I1%7 == 0) {
12638     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
12639       J3 = -I1-2*(I2)+2*I3 ;
12640       S2++;
12641     }
12642     if (5*I1%7 == 0) {
12643       I3 = 5*I1/7 ;
12644       J1 = -2*I1+3*I3 ;
12645       if ((2*I1+J1)%3 == 0) {
12646         J2 = (2*I1+J1)/3 ;
12647         J3 = 3*I1-4*J2 ;
12648         S1++;
12649         S2++;
12650       }
12651     }
12652     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
12653       J3 = I1-(I2)-(I3) ;
12654       S1++;
12655       J3 = -I1-2*(I2)+2*I3 ;
12656       S2++;
12657     }
12658   }
12659   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
12660     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12661       J3 = -I1-2*(I2)+2*I3 ;
12662       S2++;
12663     }
12664     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
12665       J3 = -I1-2*(I2)+2*I3 ;
12666       S2++;
12667       J3 = I1-(I2)-(I3) ;
12668       S1++;
12669     }
12670     if ((2*I1+I2)%3 == 0) {
12671       I3 = (2*I1+I2)/3 ;
12672       J1 = -2*I1+3*I3 ;
12673       if ((2*I1+J1)%3 == 0) {
12674         J2 = (2*I1+J1)/3 ;
12675         J3 = 3*I1-4*J2 ;
12676         S1++;
12677         S2++;
12678       }
12679     }
12680     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12681       J3 = I1-(I2)-(I3) ;
12682       S1++;
12683       J3 = -I1-2*(I2)+2*I3 ;
12684       S2++;
12685     }
12686   }
12687   if ((I1-1)%6 == 0) {
12688     I2 = (I1-1)/6 ;
12689     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
12690       J3 = -I1-2*(I2)+2*I3 ;
12691       S2++;
12692       J3 = I1-(I2)-(I3) ;
12693       S1++;
12694     }
12695     if ((13*I1-1)%18 == 0) {
12696       I3 = (13*I1-1)/18 ;
12697       J1 = -2*I1+3*I3 ;
12698       if ((2*I1+J1)%3 == 0) {
12699         J2 = (2*I1+J1)/3 ;
12700         J3 = 3*I1-4*J2 ;
12701         S1++;
12702         S2++;
12703       }
12704     }
12705     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
12706       J3 = I1-(I2)-(I3) ;
12707       S1++;
12708       J3 = -I1-2*(I2)+2*I3 ;
12709       S2++;
12710     }
12711   }
12712   if (I1%6 == 0) {
12713     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
12714       J3 = -I1-2*(I2)+2*I3 ;
12715       S2++;
12716       J3 = I1-(I2)-(I3) ;
12717       S1++;
12718     }
12719     if (13*I1%18 == 0) {
12720       I3 = 13*I1/18 ;
12721       J1 = -2*I1+3*I3 ;
12722       if ((2*I1+J1)%3 == 0) {
12723         J2 = (2*I1+J1)/3 ;
12724         J3 = 3*I1-4*J2 ;
12725         S1++;
12726         S2++;
12727       }
12728     }
12729     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
12730       J3 = I1-(I2)-(I3) ;
12731       S1++;
12732       J3 = -I1-2*(I2)+2*I3 ;
12733       S2++;
12734     }
12735   }
12736   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
12737     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
12738       J3 = I1-(I2)-(I3) ;
12739       S1++;
12740     }
12741     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
12742       J3 = -I1-2*(I2)+2*I3 ;
12743       S2++;
12744       J3 = I1-(I2)-(I3) ;
12745       S1++;
12746     }
12747     if ((2*I1+I2)%3 == 0) {
12748       I3 = (2*I1+I2)/3 ;
12749       J1 = -2*I1+3*I3 ;
12750       if ((2*I1+J1)%3 == 0) {
12751         J2 = (2*I1+J1)/3 ;
12752         J3 = 3*I1-4*J2 ;
12753         S1++;
12754         S2++;
12755       }
12756     }
12757     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12758       J3 = I1-(I2)-(I3) ;
12759       S1++;
12760       J3 = -I1-2*(I2)+2*I3 ;
12761       S2++;
12762     }
12763   }
12764   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
12765     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
12766       J3 = I1-(I2)-(I3) ;
12767       S1++;
12768     }
12769     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
12770       J3 = -I1-2*(I2)+2*I3 ;
12771       S2++;
12772       J3 = I1-(I2)-(I3) ;
12773       S1++;
12774     }
12775     if ((2*I1+I2)%3 == 0) {
12776       I3 = (2*I1+I2)/3 ;
12777       J1 = -2*I1+3*I3 ;
12778       if ((2*I1+J1)%3 == 0) {
12779         J2 = (2*I1+J1)/3 ;
12780         J3 = 3*I1-4*J2 ;
12781         S1++;
12782         S2++;
12783       }
12784     }
12785     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
12786       J3 = I1-(I2)-(I3) ;
12787       S1++;
12788       J3 = -I1-2*(I2)+2*I3 ;
12789       S2++;
12790     }
12791     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12792       J3 = -I1-2*(I2)+2*I3 ;
12793       S2++;
12794     }
12795   }
12796   if ((I1-1)%4 == 0) {
12797     I2 = (I1-1)/4 ;
12798     for (I3=2*I2+1;I3<=3*I2;I3++) {
12799       J3 = I1-(I2)-(I3) ;
12800       S1++;
12801     }
12802     if ((9*I1-1)%12 == 0) {
12803       I3 = (9*I1-1)/12 ;
12804       J1 = -2*I1+3*I3 ;
12805       if ((2*I1+J1)%3 == 0) {
12806         J2 = (2*I1+J1)/3 ;
12807         J3 = 3*I1-4*J2 ;
12808         S1++;
12809         S2++;
12810       }
12811     }
12812     if ((3*I1+1)%4 == 0) {
12813       I3 = (3*I1+1)/4 ;
12814       J3 = I1-(I2)-(I3) ;
12815       S1++;
12816       J3 = -I1-2*(I2)+2*I3 ;
12817       S2++;
12818     }
12819     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
12820       J3 = -I1-2*(I2)+2*I3 ;
12821       S2++;
12822     }
12823   }
12824   if (I1%4 == 0) {
12825     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
12826       J3 = I1-(I2)-(I3) ;
12827       S1++;
12828     }
12829     if (3*I1%4 == 0) {
12830       I3 = 3*I1/4 ;
12831       J1 = -2*I1+3*I3 ;
12832       if ((2*I1+J1)%3 == 0) {
12833         J2 = (2*I1+J1)/3 ;
12834         J3 = 3*I1-4*J2 ;
12835         S1++;
12836         S2++;
12837       }
12838     }
12839     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
12840       J3 = -I1-2*(I2)+2*I3 ;
12841       S2++;
12842     }
12843   }
12844   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
12845     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
12846       J3 = I1-(I2)-(I3) ;
12847       S1++;
12848     }
12849     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12850       J3 = -I1-2*(I2)+2*I3 ;
12851       S2++;
12852     }
12853   }
12854   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
12855     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
12856       J3 = I1-(I2)-(I3) ;
12857       S1++;
12858     }
12859   }
12861 if ((N1 >= 20) && (N1 <= 26)) {
12862   if ((4*N1-5)%3 == 0) {
12863     I1 = (4*N1-5)/3 ;
12864     for (I2=1;I2<=floord(N1-8,6);I2++) {
12865       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
12866         J3 = -I1-2*(I2)+2*I3 ;
12867         S2++;
12868       }
12869     }
12870     for (I2=ceild(N1-5,6);I2<=floord(4*N1-8,27);I2++) {
12871       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
12872         J3 = -I1-2*(I2)+2*I3 ;
12873         S2++;
12874       }
12875       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
12876         J3 = I1-(I2)-(I3) ;
12877         S1++;
12878       }
12879     }
12880     for (I2=ceild(4*N1-5,27);I2<=floord(N1+7,9);I2++) {
12881       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12882         J3 = -I1-2*(I2)+2*I3 ;
12883         S2++;
12884       }
12885       for (I3=I1-2*I2;I3<=floord(2*I1+3*I2,3);I3++) {
12886         J3 = I1-(I2)-(I3) ;
12887         S1++;
12888         J3 = -I1-2*(I2)+2*I3 ;
12889         S2++;
12890       }
12891       for (I3=ceild(2*I1+3*I2+1,3);I3<=min(N1,I1-I2);I3++) {
12892         J3 = I1-(I2)-(I3) ;
12893         S1++;
12894       }
12895     }
12896     for (I2=ceild(N1+10,9);I2<=floord(4*N1-8,21);I2++) {
12897       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12898         J3 = -I1-2*(I2)+2*I3 ;
12899         S2++;
12900       }
12901       for (I3=I1-2*I2;I3<=N1;I3++) {
12902         J3 = I1-(I2)-(I3) ;
12903         S1++;
12904         J3 = -I1-2*(I2)+2*I3 ;
12905         S2++;
12906       }
12907     }
12908     if ((4*N1-5)%21 == 0) {
12909       I2 = (4*N1-5)/21 ;
12910       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
12911         J3 = -I1-2*(I2)+2*I3 ;
12912         S2++;
12913       }
12914       if (5*I1%7 == 0) {
12915         I3 = 5*I1/7 ;
12916         J1 = -2*I1+3*I3 ;
12917         if ((2*I1+J1)%3 == 0) {
12918           J2 = (2*I1+J1)/3 ;
12919           J3 = 3*I1-4*J2 ;
12920           S1++;
12921           S2++;
12922         }
12923       }
12924       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
12925         J3 = I1-(I2)-(I3) ;
12926         S1++;
12927         J3 = -I1-2*(I2)+2*I3 ;
12928         S2++;
12929       }
12930     }
12931     for (I2=ceild(4*N1-2,21);I2<=floord(4*N1-11,18);I2++) {
12932       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
12933         J3 = -I1-2*(I2)+2*I3 ;
12934         S2++;
12935       }
12936       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
12937         J3 = -I1-2*(I2)+2*I3 ;
12938         S2++;
12939         J3 = I1-(I2)-(I3) ;
12940         S1++;
12941       }
12942       if ((2*I1+I2)%3 == 0) {
12943         I3 = (2*I1+I2)/3 ;
12944         J1 = -2*I1+3*I3 ;
12945         if ((2*I1+J1)%3 == 0) {
12946           J2 = (2*I1+J1)/3 ;
12947           J3 = 3*I1-4*J2 ;
12948           S1++;
12949           S2++;
12950         }
12951       }
12952       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
12953         J3 = I1-(I2)-(I3) ;
12954         S1++;
12955         J3 = -I1-2*(I2)+2*I3 ;
12956         S2++;
12957       }
12958     }
12959     if ((2*N1-4)%9 == 0) {
12960       I2 = (2*N1-4)/9 ;
12961       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
12962         J3 = -I1-2*(I2)+2*I3 ;
12963         S2++;
12964         J3 = I1-(I2)-(I3) ;
12965         S1++;
12966       }
12967       if ((13*I1-1)%18 == 0) {
12968         I3 = (13*I1-1)/18 ;
12969         J1 = -2*I1+3*I3 ;
12970         if ((2*I1+J1)%3 == 0) {
12971           J2 = (2*I1+J1)/3 ;
12972           J3 = 3*I1-4*J2 ;
12973           S1++;
12974           S2++;
12975         }
12976       }
12977       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
12978         J3 = I1-(I2)-(I3) ;
12979         S1++;
12980         J3 = -I1-2*(I2)+2*I3 ;
12981         S2++;
12982       }
12983     }
12984     if ((4*N1-5)%18 == 0) {
12985       I2 = (4*N1-5)/18 ;
12986       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
12987         J3 = -I1-2*(I2)+2*I3 ;
12988         S2++;
12989         J3 = I1-(I2)-(I3) ;
12990         S1++;
12991       }
12992       if (13*I1%18 == 0) {
12993         I3 = 13*I1/18 ;
12994         J1 = -2*I1+3*I3 ;
12995         if ((2*I1+J1)%3 == 0) {
12996           J2 = (2*I1+J1)/3 ;
12997           J3 = 3*I1-4*J2 ;
12998           S1++;
12999           S2++;
13000         }
13001       }
13002       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
13003         J3 = I1-(I2)-(I3) ;
13004         S1++;
13005         J3 = -I1-2*(I2)+2*I3 ;
13006         S2++;
13007       }
13008     }
13009     for (I2=ceild(2*N1-1,9);I2<=floord(N1-5,3);I2++) {
13010       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
13011         J3 = I1-(I2)-(I3) ;
13012         S1++;
13013       }
13014       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
13015         J3 = -I1-2*(I2)+2*I3 ;
13016         S2++;
13017         J3 = I1-(I2)-(I3) ;
13018         S1++;
13019       }
13020       if ((2*I1+I2)%3 == 0) {
13021         I3 = (2*I1+I2)/3 ;
13022         J1 = -2*I1+3*I3 ;
13023         if ((2*I1+J1)%3 == 0) {
13024           J2 = (2*I1+J1)/3 ;
13025           J3 = 3*I1-4*J2 ;
13026           S1++;
13027           S2++;
13028         }
13029       }
13030       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
13031         J3 = I1-(I2)-(I3) ;
13032         S1++;
13033         J3 = -I1-2*(I2)+2*I3 ;
13034         S2++;
13035       }
13036     }
13037     if ((N1-2)%3 == 0) {
13038       I2 = (N1-2)/3 ;
13039       for (I3=2*I2+1;I3<=3*I2;I3++) {
13040         J3 = I1-(I2)-(I3) ;
13041         S1++;
13042       }
13043       if ((9*I1-1)%12 == 0) {
13044         I3 = (9*I1-1)/12 ;
13045         J1 = -2*I1+3*I3 ;
13046         if ((2*I1+J1)%3 == 0) {
13047           J2 = (2*I1+J1)/3 ;
13048           J3 = 3*I1-4*J2 ;
13049           S1++;
13050           S2++;
13051         }
13052       }
13053       if ((3*I1+1)%4 == 0) {
13054         I3 = (3*I1+1)/4 ;
13055         J3 = I1-(I2)-(I3) ;
13056         S1++;
13057         J3 = -I1-2*(I2)+2*I3 ;
13058         S2++;
13059       }
13060       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
13061         J3 = -I1-2*(I2)+2*I3 ;
13062         S2++;
13063       }
13064     }
13065     if ((4*N1-5)%12 == 0) {
13066       I2 = (4*N1-5)/12 ;
13067       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
13068         J3 = I1-(I2)-(I3) ;
13069         S1++;
13070       }
13071       if (3*I1%4 == 0) {
13072         I3 = 3*I1/4 ;
13073         J1 = -2*I1+3*I3 ;
13074         if ((2*I1+J1)%3 == 0) {
13075           J2 = (2*I1+J1)/3 ;
13076           J3 = 3*I1-4*J2 ;
13077           S1++;
13078           S2++;
13079         }
13080       }
13081       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
13082         J3 = -I1-2*(I2)+2*I3 ;
13083         S2++;
13084       }
13085     }
13086     for (I2=ceild(2*N1-1,6);I2<=floord(2*N1+5,6);I2++) {
13087       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
13088         J3 = I1-(I2)-(I3) ;
13089         S1++;
13090       }
13091       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
13092         J3 = -I1-2*(I2)+2*I3 ;
13093         S2++;
13094       }
13095     }
13096     for (I2=ceild(N1+4,3);I2<=N1;I2++) {
13097       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
13098         J3 = I1-(I2)-(I3) ;
13099         S1++;
13100       }
13101     }
13102   }
13104 if (N1 >= 36) {
13105   if ((9*N1-2)%7 == 0) {
13106     I1 = (9*N1-2)/7 ;
13107     for (I2=1;I2<=floord(2*N1-9,14);I2++) {
13108       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
13109         J3 = -I1-2*(I2)+2*I3 ;
13110         S2++;
13111       }
13112     }
13113     if ((N1-1)%7 == 0) {
13114       I2 = (N1-1)/7 ;
13115       for (I3=ceild(I1+2*I2,2);I3<=min(I1-2*I2-1,floord(2*I1+3*I2,3));I3++) {
13116         J3 = -I1-2*(I2)+2*I3 ;
13117         S2++;
13118       }
13119       for (I3=I1-2*I2;I3<=min(N1,I1-I2);I3++) {
13120         J3 = I1-(I2)-(I3) ;
13121         S1++;
13122       }
13123     }
13124     for (I2=ceild(3*N1+4,21);I2<=floord(9*N1-9,49);I2++) {
13125       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
13126         J3 = -I1-2*(I2)+2*I3 ;
13127         S2++;
13128       }
13129       for (I3=I1-2*I2;I3<=N1;I3++) {
13130         J3 = I1-(I2)-(I3) ;
13131         S1++;
13132         J3 = -I1-2*(I2)+2*I3 ;
13133         S2++;
13134       }
13135     }
13136     if ((9*N1-2)%49 == 0) {
13137       I2 = (9*N1-2)/49 ;
13138       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
13139         J3 = -I1-2*(I2)+2*I3 ;
13140         S2++;
13141       }
13142       if (5*I1%7 == 0) {
13143         I3 = 5*I1/7 ;
13144         J1 = -2*I1+3*I3 ;
13145         if ((2*I1+J1)%3 == 0) {
13146           J2 = (2*I1+J1)/3 ;
13147           J3 = 3*I1-4*J2 ;
13148           S1++;
13149           S2++;
13150         }
13151       }
13152       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
13153         J3 = I1-(I2)-(I3) ;
13154         S1++;
13155         J3 = -I1-2*(I2)+2*I3 ;
13156         S2++;
13157       }
13158     }
13159     for (I2=ceild(9*N1+5,49);I2<=floord(9*N1-16,42);I2++) {
13160       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
13161         J3 = -I1-2*(I2)+2*I3 ;
13162         S2++;
13163       }
13164       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
13165         J3 = -I1-2*(I2)+2*I3 ;
13166         S2++;
13167         J3 = I1-(I2)-(I3) ;
13168         S1++;
13169       }
13170       if ((2*I1+I2)%3 == 0) {
13171         I3 = (2*I1+I2)/3 ;
13172         J1 = -2*I1+3*I3 ;
13173         if ((2*I1+J1)%3 == 0) {
13174           J2 = (2*I1+J1)/3 ;
13175           J3 = 3*I1-4*J2 ;
13176           S1++;
13177           S2++;
13178         }
13179       }
13180       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
13181         J3 = I1-(I2)-(I3) ;
13182         S1++;
13183         J3 = -I1-2*(I2)+2*I3 ;
13184         S2++;
13185       }
13186     }
13187     if ((3*N1-3)%14 == 0) {
13188       I2 = (3*N1-3)/14 ;
13189       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
13190         J3 = -I1-2*(I2)+2*I3 ;
13191         S2++;
13192         J3 = I1-(I2)-(I3) ;
13193         S1++;
13194       }
13195       if ((13*I1-1)%18 == 0) {
13196         I3 = (13*I1-1)/18 ;
13197         J1 = -2*I1+3*I3 ;
13198         if ((2*I1+J1)%3 == 0) {
13199           J2 = (2*I1+J1)/3 ;
13200           J3 = 3*I1-4*J2 ;
13201           S1++;
13202           S2++;
13203         }
13204       }
13205       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
13206         J3 = I1-(I2)-(I3) ;
13207         S1++;
13208         J3 = -I1-2*(I2)+2*I3 ;
13209         S2++;
13210       }
13211     }
13212     if ((9*N1-2)%42 == 0) {
13213       I2 = (9*N1-2)/42 ;
13214       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
13215         J3 = -I1-2*(I2)+2*I3 ;
13216         S2++;
13217         J3 = I1-(I2)-(I3) ;
13218         S1++;
13219       }
13220       if (13*I1%18 == 0) {
13221         I3 = 13*I1/18 ;
13222         J1 = -2*I1+3*I3 ;
13223         if ((2*I1+J1)%3 == 0) {
13224           J2 = (2*I1+J1)/3 ;
13225           J3 = 3*I1-4*J2 ;
13226           S1++;
13227           S2++;
13228         }
13229       }
13230       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
13231         J3 = I1-(I2)-(I3) ;
13232         S1++;
13233         J3 = -I1-2*(I2)+2*I3 ;
13234         S2++;
13235       }
13236     }
13237     for (I2=ceild(9*N1+5,42);I2<=floord(2*N1-2,7);I2++) {
13238       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
13239         J3 = I1-(I2)-(I3) ;
13240         S1++;
13241       }
13242       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
13243         J3 = -I1-2*(I2)+2*I3 ;
13244         S2++;
13245         J3 = I1-(I2)-(I3) ;
13246         S1++;
13247       }
13248       if ((2*I1+I2)%3 == 0) {
13249         I3 = (2*I1+I2)/3 ;
13250         J1 = -2*I1+3*I3 ;
13251         if ((2*I1+J1)%3 == 0) {
13252           J2 = (2*I1+J1)/3 ;
13253           J3 = 3*I1-4*J2 ;
13254           S1++;
13255           S2++;
13256         }
13257       }
13258       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
13259         J3 = I1-(I2)-(I3) ;
13260         S1++;
13261         J3 = -I1-2*(I2)+2*I3 ;
13262         S2++;
13263       }
13264     }
13265     for (I2=ceild(2*N1+5,7);I2<=floord(9*N1-16,28);I2++) {
13266       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
13267         J3 = I1-(I2)-(I3) ;
13268         S1++;
13269       }
13270       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
13271         J3 = -I1-2*(I2)+2*I3 ;
13272         S2++;
13273         J3 = I1-(I2)-(I3) ;
13274         S1++;
13275       }
13276       if ((2*I1+I2)%3 == 0) {
13277         I3 = (2*I1+I2)/3 ;
13278         J1 = -2*I1+3*I3 ;
13279         if ((2*I1+J1)%3 == 0) {
13280           J2 = (2*I1+J1)/3 ;
13281           J3 = 3*I1-4*J2 ;
13282           S1++;
13283           S2++;
13284         }
13285       }
13286       for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
13287         J3 = I1-(I2)-(I3) ;
13288         S1++;
13289         J3 = -I1-2*(I2)+2*I3 ;
13290         S2++;
13291       }
13292       for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
13293         J3 = -I1-2*(I2)+2*I3 ;
13294         S2++;
13295       }
13296     }
13297     if ((9*N1-9)%28 == 0) {
13298       I2 = (9*N1-9)/28 ;
13299       for (I3=2*I2+1;I3<=3*I2;I3++) {
13300         J3 = I1-(I2)-(I3) ;
13301         S1++;
13302       }
13303       if ((9*I1-1)%12 == 0) {
13304         I3 = (9*I1-1)/12 ;
13305         J1 = -2*I1+3*I3 ;
13306         if ((2*I1+J1)%3 == 0) {
13307           J2 = (2*I1+J1)/3 ;
13308           J3 = 3*I1-4*J2 ;
13309           S1++;
13310           S2++;
13311         }
13312       }
13313       if ((3*I1+1)%4 == 0) {
13314         I3 = (3*I1+1)/4 ;
13315         J3 = I1-(I2)-(I3) ;
13316         S1++;
13317         J3 = -I1-2*(I2)+2*I3 ;
13318         S2++;
13319       }
13320       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
13321         J3 = -I1-2*(I2)+2*I3 ;
13322         S2++;
13323       }
13324     }
13325     if ((9*N1-2)%28 == 0) {
13326       I2 = (9*N1-2)/28 ;
13327       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
13328         J3 = I1-(I2)-(I3) ;
13329         S1++;
13330       }
13331       if (3*I1%4 == 0) {
13332         I3 = 3*I1/4 ;
13333         J1 = -2*I1+3*I3 ;
13334         if ((2*I1+J1)%3 == 0) {
13335           J2 = (2*I1+J1)/3 ;
13336           J3 = 3*I1-4*J2 ;
13337           S1++;
13338           S2++;
13339         }
13340       }
13341       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
13342         J3 = -I1-2*(I2)+2*I3 ;
13343         S2++;
13344       }
13345     }
13346     for (I2=ceild(9*N1+5,28);I2<=floord(5*N1+2,14);I2++) {
13347       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
13348         J3 = I1-(I2)-(I3) ;
13349         S1++;
13350       }
13351       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
13352         J3 = -I1-2*(I2)+2*I3 ;
13353         S2++;
13354       }
13355     }
13356     for (I2=ceild(5*N1+9,14);I2<=N1;I2++) {
13357       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
13358         J3 = I1-(I2)-(I3) ;
13359         S1++;
13360       }
13361     }
13362   }
13364 if (N1 == 29) {
13365   for (I2=1;I2<=3;I2++) {
13366     for (I3=ceild(37+2*I2,2);I3<=min(N1,floord(2*37+3*I2,3));I3++) {
13367       J3 = -(37)-2*(I2)+2*I3 ;
13368       S2++;
13369     }
13370   }
13371   for (I3=ceild(37+2*4,2);I3<=min(37-2*(4)-1,floord(2*37+3*4,3));I3++) {
13372     J3 = -(37)-2*(I2)+2*I3 ;
13373     S2++;
13374   }
13375   for (I3=37-2*(4);I3<=min(N1,37-(4));I3++) {
13376     J3 = 37-(I2)-(I3) ;
13377     S1++;
13378   }
13379   for (I3=ceild(37+2*5,2);I3<=37-2*(5)-1;I3++) {
13380     J3 = -(37)-2*(I2)+2*I3 ;
13381     S2++;
13382   }
13383   for (I3=37-2*(5);I3<=N1;I3++) {
13384     J3 = 37-(I2)-(I3) ;
13385     S1++;
13386     J3 = -(37)-2*(I2)+2*I3 ;
13387     S2++;
13388   }
13389   if (37%7 == 0) {
13390     for (I3=ceild(9*37/7,2);I3<=5*37/7-1;I3++) {
13391       J3 = -(37)-2*(I2)+2*I3 ;
13392       S2++;
13393     }
13394     if (5*37%7 == 0) {
13395       I3 = 5*37/7 ;
13396       J1 = -2*(37)+3*I3 ;
13397       if ((2*37+J1)%3 == 0) {
13398         J2 = (2*37+J1)/3 ;
13399         J3 = 3*37-4*J2 ;
13400         S1++;
13401         S2++;
13402       }
13403     }
13404     for (I3=ceild(15*37/7+1,3);I3<=N1;I3++) {
13405       J3 = 37-(I2)-(I3) ;
13406       S1++;
13407       J3 = -(37)-2*(I2)+2*I3 ;
13408       S2++;
13409     }
13410   }
13411   for (I2=6;I2<=5;I2++) {
13412     for (I3=ceild(37+2*I2,2);I3<=37-2*I2-1;I3++) {
13413       J3 = -(37)-2*(I2)+2*I3 ;
13414       S2++;
13415     }
13416     for (I3=37-2*I2;I3<=floord(2*37+I2-1,3);I3++) {
13417       J3 = -(37)-2*(I2)+2*I3 ;
13418       S2++;
13419       J3 = 37-(I2)-(I3) ;
13420       S1++;
13421     }
13422     if ((2*37+I2)%3 == 0) {
13423       I3 = (2*37+I2)/3 ;
13424       J1 = -2*(37)+3*I3 ;
13425       if ((2*37+J1)%3 == 0) {
13426         J2 = (2*37+J1)/3 ;
13427         J3 = 3*37-4*J2 ;
13428         S1++;
13429         S2++;
13430       }
13431     }
13432     for (I3=ceild(2*37+I2+1,3);I3<=N1;I3++) {
13433       J3 = 37-(I2)-(I3) ;
13434       S1++;
13435       J3 = -(37)-2*(I2)+2*I3 ;
13436       S2++;
13437     }
13438   }
13439   for (I3=4*6+1;I3<=floord(13*6+1,3);I3++) {
13440     J3 = -(37)-2*(I2)+2*I3 ;
13441     S2++;
13442     J3 = 37-(I2)-(I3) ;
13443     S1++;
13444   }
13445   if ((13*37-1)%18 == 0) {
13446     I3 = (13*37-1)/18 ;
13447     J1 = -2*(37)+3*I3 ;
13448     if ((2*37+J1)%3 == 0) {
13449       J2 = (2*37+J1)/3 ;
13450       J3 = 3*37-4*J2 ;
13451       S1++;
13452       S2++;
13453     }
13454   }
13455   for (I3=ceild(13*6+3,3);I3<=N1;I3++) {
13456     J3 = 37-(I2)-(I3) ;
13457     S1++;
13458     J3 = -(37)-2*(I2)+2*I3 ;
13459     S2++;
13460   }
13461   if (37%6 == 0) {
13462     for (I3=4*37/6;I3<=floord(13*37/6-1,3);I3++) {
13463       J3 = -(37)-2*(I2)+2*I3 ;
13464       S2++;
13465       J3 = 37-(I2)-(I3) ;
13466       S1++;
13467     }
13468     if (13*37%18 == 0) {
13469       I3 = 13*37/18 ;
13470       J1 = -2*(37)+3*I3 ;
13471       if ((2*37+J1)%3 == 0) {
13472         J2 = (2*37+J1)/3 ;
13473         J3 = 3*37-4*J2 ;
13474         S1++;
13475         S2++;
13476       }
13477     }
13478     for (I3=ceild(13*37/6+1,3);I3<=min(N1,5*37/6);I3++) {
13479       J3 = 37-(I2)-(I3) ;
13480       S1++;
13481       J3 = -(37)-2*(I2)+2*I3 ;
13482       S2++;
13483     }
13484   }
13485   for (I2=7;I2<=8;I2++) {
13486     for (I3=37-2*I2;I3<=floord(37+2*I2-1,2);I3++) {
13487       J3 = 37-(I2)-(I3) ;
13488       S1++;
13489     }
13490     for (I3=ceild(37+2*I2,2);I3<=floord(2*37+I2-1,3);I3++) {
13491       J3 = -(37)-2*(I2)+2*I3 ;
13492       S2++;
13493       J3 = 37-(I2)-(I3) ;
13494       S1++;
13495     }
13496     if ((2*37+I2)%3 == 0) {
13497       I3 = (2*37+I2)/3 ;
13498       J1 = -2*(37)+3*I3 ;
13499       if ((2*37+J1)%3 == 0) {
13500         J2 = (2*37+J1)/3 ;
13501         J3 = 3*37-4*J2 ;
13502         S1++;
13503         S2++;
13504       }
13505     }
13506     for (I3=ceild(2*37+I2+1,3);I3<=N1;I3++) {
13507       J3 = 37-(I2)-(I3) ;
13508       S1++;
13509       J3 = -(37)-2*(I2)+2*I3 ;
13510       S2++;
13511     }
13512   }
13513   for (I3=2*9+1;I3<=3*9;I3++) {
13514     J3 = 37-(I2)-(I3) ;
13515     S1++;
13516   }
13517   if ((9*37-1)%12 == 0) {
13518     I3 = (9*37-1)/12 ;
13519     J1 = -2*(37)+3*I3 ;
13520     if ((2*37+J1)%3 == 0) {
13521       J2 = (2*37+J1)/3 ;
13522       J3 = 3*37-4*J2 ;
13523       S1++;
13524       S2++;
13525     }
13526   }
13527   if ((3*37+1)%4 == 0) {
13528     I3 = (3*37+1)/4 ;
13529     J3 = 37-(I2)-(I3) ;
13530     S1++;
13531     J3 = -(37)-2*(I2)+2*I3 ;
13532     S2++;
13533   }
13534   for (I3=3*9+2;I3<=min(N1,floord(11*9+2,3));I3++) {
13535     J3 = -(37)-2*(I2)+2*I3 ;
13536     S2++;
13537   }
13538   if (37%4 == 0) {
13539     for (I3=2*37/4;I3<=floord(6*37/4-1,2);I3++) {
13540       J3 = 37-(I2)-(I3) ;
13541       S1++;
13542     }
13543     if (3*37%4 == 0) {
13544       I3 = 3*37/4 ;
13545       J1 = -2*(37)+3*I3 ;
13546       if ((2*37+J1)%3 == 0) {
13547         J2 = (2*37+J1)/3 ;
13548         J3 = 3*37-4*J2 ;
13549         S1++;
13550         S2++;
13551       }
13552     }
13553     for (I3=3*37/4+1;I3<=min(N1,floord(11*37/4,3));I3++) {
13554       J3 = -(37)-2*(I2)+2*I3 ;
13555       S2++;
13556     }
13557   }
13558   for (I3=max(max(1,ceild(37-(10),2)),37-2*(10));I3<=37-(10);I3++) {
13559     J3 = 37-(I2)-(I3) ;
13560     S1++;
13561   }
13562   for (I3=max(37-(10)+1,ceild(37+2*10,2));I3<=min(N1,floord(2*37+3*10,3));I3++) {
13563     J3 = -(37)-2*(I2)+2*I3 ;
13564     S2++;
13565   }
13566   for (I2=11;I2<=29;I2++) {
13567     for (I3=max(max(ceild(37-I2,2),37-2*I2),1);I3<=min(37-I2,N1);I3++) {
13568       J3 = 37-(I2)-(I3) ;
13569       S1++;
13570     }
13571   }
13573 if (N1 == 22) {
13574   for (I2=1;I2<=2;I2++) {
13575     for (I3=ceild(28+2*I2,2);I3<=min(N1,floord(2*28+3*I2,3));I3++) {
13576       J3 = -(28)-2*(I2)+2*I3 ;
13577       S2++;
13578     }
13579   }
13580   for (I3=ceild(28+2*3,2);I3<=min(28-2*(3)-1,floord(2*28+3*3,3));I3++) {
13581     J3 = -(28)-2*(I2)+2*I3 ;
13582     S2++;
13583   }
13584   for (I3=28-2*(3);I3<=min(N1,28-(3));I3++) {
13585     J3 = 28-(I2)-(I3) ;
13586     S1++;
13587   }
13588   for (I2=4;I2<=3;I2++) {
13589     for (I3=ceild(28+2*I2,2);I3<=28-2*I2-1;I3++) {
13590       J3 = -(28)-2*(I2)+2*I3 ;
13591       S2++;
13592     }
13593     for (I3=28-2*I2;I3<=N1;I3++) {
13594       J3 = 28-(I2)-(I3) ;
13595       S1++;
13596       J3 = -(28)-2*(I2)+2*I3 ;
13597       S2++;
13598     }
13599   }
13600   for (I3=ceild(9*4,2);I3<=5*4-1;I3++) {
13601     J3 = -(28)-2*(I2)+2*I3 ;
13602     S2++;
13603   }
13604   if (5*28%7 == 0) {
13605     I3 = 5*28/7 ;
13606     J1 = -2*(28)+3*I3 ;
13607     if ((2*28+J1)%3 == 0) {
13608       J2 = (2*28+J1)/3 ;
13609       J3 = 3*28-4*J2 ;
13610       S1++;
13611       S2++;
13612     }
13613   }
13614   for (I3=ceild(15*4+1,3);I3<=N1;I3++) {
13615     J3 = 28-(I2)-(I3) ;
13616     S1++;
13617     J3 = -(28)-2*(I2)+2*I3 ;
13618     S2++;
13619   }
13620   for (I2=5;I2<=4;I2++) {
13621     for (I3=ceild(28+2*I2,2);I3<=28-2*I2-1;I3++) {
13622       J3 = -(28)-2*(I2)+2*I3 ;
13623       S2++;
13624     }
13625     for (I3=28-2*I2;I3<=floord(2*28+I2-1,3);I3++) {
13626       J3 = -(28)-2*(I2)+2*I3 ;
13627       S2++;
13628       J3 = 28-(I2)-(I3) ;
13629       S1++;
13630     }
13631     if ((2*28+I2)%3 == 0) {
13632       I3 = (2*28+I2)/3 ;
13633       J1 = -2*(28)+3*I3 ;
13634       if ((2*28+J1)%3 == 0) {
13635         J2 = (2*28+J1)/3 ;
13636         J3 = 3*28-4*J2 ;
13637         S1++;
13638         S2++;
13639       }
13640     }
13641     for (I3=ceild(2*28+I2+1,3);I3<=N1;I3++) {
13642       J3 = 28-(I2)-(I3) ;
13643       S1++;
13644       J3 = -(28)-2*(I2)+2*I3 ;
13645       S2++;
13646     }
13647   }
13648   if (9%2 == 0) {
13649     for (I3=4*9/2+1;I3<=floord(13*9/2+1,3);I3++) {
13650       J3 = -(28)-2*(I2)+2*I3 ;
13651       S2++;
13652       J3 = 28-(I2)-(I3) ;
13653       S1++;
13654     }
13655     if ((13*28-1)%18 == 0) {
13656       I3 = (13*28-1)/18 ;
13657       J1 = -2*(28)+3*I3 ;
13658       if ((2*28+J1)%3 == 0) {
13659         J2 = (2*28+J1)/3 ;
13660         J3 = 3*28-4*J2 ;
13661         S1++;
13662         S2++;
13663       }
13664     }
13665     for (I3=ceild(13*9/2+3,3);I3<=N1;I3++) {
13666       J3 = 28-(I2)-(I3) ;
13667       S1++;
13668       J3 = -(28)-2*(I2)+2*I3 ;
13669       S2++;
13670     }
13671   }
13672   if (14%3 == 0) {
13673     for (I3=4*14/3;I3<=floord(13*14/3-1,3);I3++) {
13674       J3 = -(28)-2*(I2)+2*I3 ;
13675       S2++;
13676       J3 = 28-(I2)-(I3) ;
13677       S1++;
13678     }
13679     if (13*28%18 == 0) {
13680       I3 = 13*28/18 ;
13681       J1 = -2*(28)+3*I3 ;
13682       if ((2*28+J1)%3 == 0) {
13683         J2 = (2*28+J1)/3 ;
13684         J3 = 3*28-4*J2 ;
13685         S1++;
13686         S2++;
13687       }
13688     }
13689     for (I3=ceild(13*14/3+1,3);I3<=min(N1,5*14/3);I3++) {
13690       J3 = 28-(I2)-(I3) ;
13691       S1++;
13692       J3 = -(28)-2*(I2)+2*I3 ;
13693       S2++;
13694     }
13695   }
13696   for (I2=5;I2<=6;I2++) {
13697     for (I3=28-2*I2;I3<=floord(28+2*I2-1,2);I3++) {
13698       J3 = 28-(I2)-(I3) ;
13699       S1++;
13700     }
13701     for (I3=ceild(28+2*I2,2);I3<=floord(2*28+I2-1,3);I3++) {
13702       J3 = -(28)-2*(I2)+2*I3 ;
13703       S2++;
13704       J3 = 28-(I2)-(I3) ;
13705       S1++;
13706     }
13707     if ((2*28+I2)%3 == 0) {
13708       I3 = (2*28+I2)/3 ;
13709       J1 = -2*(28)+3*I3 ;
13710       if ((2*28+J1)%3 == 0) {
13711         J2 = (2*28+J1)/3 ;
13712         J3 = 3*28-4*J2 ;
13713         S1++;
13714         S2++;
13715       }
13716     }
13717     for (I3=ceild(2*28+I2+1,3);I3<=N1;I3++) {
13718       J3 = 28-(I2)-(I3) ;
13719       S1++;
13720       J3 = -(28)-2*(I2)+2*I3 ;
13721       S2++;
13722     }
13723   }
13724   for (I3=2*7;I3<=floord(6*7-1,2);I3++) {
13725     J3 = 28-(I2)-(I3) ;
13726     S1++;
13727   }
13728   if (3*28%4 == 0) {
13729     I3 = 3*28/4 ;
13730     J1 = -2*(28)+3*I3 ;
13731     if ((2*28+J1)%3 == 0) {
13732       J2 = (2*28+J1)/3 ;
13733       J3 = 3*28-4*J2 ;
13734       S1++;
13735       S2++;
13736     }
13737   }
13738   for (I3=3*7+1;I3<=min(N1,floord(11*7,3));I3++) {
13739     J3 = -(28)-2*(I2)+2*I3 ;
13740     S2++;
13741   }
13742   for (I3=max(max(1,ceild(28-(8),2)),28-2*(8));I3<=28-(8);I3++) {
13743     J3 = 28-(I2)-(I3) ;
13744     S1++;
13745   }
13746   for (I3=max(28-(8)+1,ceild(28+2*8,2));I3<=min(N1,floord(2*28+3*8,3));I3++) {
13747     J3 = -(28)-2*(I2)+2*I3 ;
13748     S2++;
13749   }
13750   for (I2=9;I2<=22;I2++) {
13751     for (I3=max(max(ceild(28-I2,2),28-2*I2),1);I3<=min(28-I2,N1);I3++) {
13752       J3 = 28-(I2)-(I3) ;
13753       S1++;
13754     }
13755   }
13757 for (I1=ceild(9*N1-1,7);I1<=floord(4*N1-6,3);I1++) {
13758   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
13759     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
13760       J3 = -I1-2*(I2)+2*I3 ;
13761       S2++;
13762     }
13763   }
13764   for (I2=max(ceild(I1-N1,2),ceild(-2*I1+3*N1,3));I2<=floord(I1-1,7);I2++) {
13765     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
13766       J3 = -I1-2*(I2)+2*I3 ;
13767       S2++;
13768     }
13769     for (I3=I1-2*I2;I3<=N1;I3++) {
13770       J3 = I1-(I2)-(I3) ;
13771       S1++;
13772       J3 = -I1-2*(I2)+2*I3 ;
13773       S2++;
13774     }
13775   }
13776   if (I1%7 == 0) {
13777     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
13778       J3 = -I1-2*(I2)+2*I3 ;
13779       S2++;
13780     }
13781     if (5*I1%7 == 0) {
13782       I3 = 5*I1/7 ;
13783       J1 = -2*I1+3*I3 ;
13784       if ((2*I1+J1)%3 == 0) {
13785         J2 = (2*I1+J1)/3 ;
13786         J3 = 3*I1-4*J2 ;
13787         S1++;
13788         S2++;
13789       }
13790     }
13791     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
13792       J3 = I1-(I2)-(I3) ;
13793       S1++;
13794       J3 = -I1-2*(I2)+2*I3 ;
13795       S2++;
13796     }
13797   }
13798   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
13799     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
13800       J3 = -I1-2*(I2)+2*I3 ;
13801       S2++;
13802     }
13803     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
13804       J3 = -I1-2*(I2)+2*I3 ;
13805       S2++;
13806       J3 = I1-(I2)-(I3) ;
13807       S1++;
13808     }
13809     if ((2*I1+I2)%3 == 0) {
13810       I3 = (2*I1+I2)/3 ;
13811       J1 = -2*I1+3*I3 ;
13812       if ((2*I1+J1)%3 == 0) {
13813         J2 = (2*I1+J1)/3 ;
13814         J3 = 3*I1-4*J2 ;
13815         S1++;
13816         S2++;
13817       }
13818     }
13819     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
13820       J3 = I1-(I2)-(I3) ;
13821       S1++;
13822       J3 = -I1-2*(I2)+2*I3 ;
13823       S2++;
13824     }
13825   }
13826   if ((I1-1)%6 == 0) {
13827     I2 = (I1-1)/6 ;
13828     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
13829       J3 = -I1-2*(I2)+2*I3 ;
13830       S2++;
13831       J3 = I1-(I2)-(I3) ;
13832       S1++;
13833     }
13834     if ((13*I1-1)%18 == 0) {
13835       I3 = (13*I1-1)/18 ;
13836       J1 = -2*I1+3*I3 ;
13837       if ((2*I1+J1)%3 == 0) {
13838         J2 = (2*I1+J1)/3 ;
13839         J3 = 3*I1-4*J2 ;
13840         S1++;
13841         S2++;
13842       }
13843     }
13844     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
13845       J3 = I1-(I2)-(I3) ;
13846       S1++;
13847       J3 = -I1-2*(I2)+2*I3 ;
13848       S2++;
13849     }
13850   }
13851   if (I1%6 == 0) {
13852     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
13853       J3 = -I1-2*(I2)+2*I3 ;
13854       S2++;
13855       J3 = I1-(I2)-(I3) ;
13856       S1++;
13857     }
13858     if (13*I1%18 == 0) {
13859       I3 = 13*I1/18 ;
13860       J1 = -2*I1+3*I3 ;
13861       if ((2*I1+J1)%3 == 0) {
13862         J2 = (2*I1+J1)/3 ;
13863         J3 = 3*I1-4*J2 ;
13864         S1++;
13865         S2++;
13866       }
13867     }
13868     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
13869       J3 = I1-(I2)-(I3) ;
13870       S1++;
13871       J3 = -I1-2*(I2)+2*I3 ;
13872       S2++;
13873     }
13874   }
13875   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
13876     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
13877       J3 = I1-(I2)-(I3) ;
13878       S1++;
13879     }
13880     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
13881       J3 = -I1-2*(I2)+2*I3 ;
13882       S2++;
13883       J3 = I1-(I2)-(I3) ;
13884       S1++;
13885     }
13886     if ((2*I1+I2)%3 == 0) {
13887       I3 = (2*I1+I2)/3 ;
13888       J1 = -2*I1+3*I3 ;
13889       if ((2*I1+J1)%3 == 0) {
13890         J2 = (2*I1+J1)/3 ;
13891         J3 = 3*I1-4*J2 ;
13892         S1++;
13893         S2++;
13894       }
13895     }
13896     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
13897       J3 = I1-(I2)-(I3) ;
13898       S1++;
13899       J3 = -I1-2*(I2)+2*I3 ;
13900       S2++;
13901     }
13902   }
13903   for (I2=I1-N1+1;I2<=floord(I1-2,4);I2++) {
13904     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
13905       J3 = I1-(I2)-(I3) ;
13906       S1++;
13907     }
13908     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
13909       J3 = -I1-2*(I2)+2*I3 ;
13910       S2++;
13911       J3 = I1-(I2)-(I3) ;
13912       S1++;
13913     }
13914     if ((2*I1+I2)%3 == 0) {
13915       I3 = (2*I1+I2)/3 ;
13916       J1 = -2*I1+3*I3 ;
13917       if ((2*I1+J1)%3 == 0) {
13918         J2 = (2*I1+J1)/3 ;
13919         J3 = 3*I1-4*J2 ;
13920         S1++;
13921         S2++;
13922       }
13923     }
13924     for (I3=ceild(2*I1+I2+1,3);I3<=I1-I2;I3++) {
13925       J3 = I1-(I2)-(I3) ;
13926       S1++;
13927       J3 = -I1-2*(I2)+2*I3 ;
13928       S2++;
13929     }
13930     for (I3=I1-I2+1;I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
13931       J3 = -I1-2*(I2)+2*I3 ;
13932       S2++;
13933     }
13934   }
13935   if ((I1-1)%4 == 0) {
13936     I2 = (I1-1)/4 ;
13937     for (I3=2*I2+1;I3<=3*I2;I3++) {
13938       J3 = I1-(I2)-(I3) ;
13939       S1++;
13940     }
13941     if ((9*I1-1)%12 == 0) {
13942       I3 = (9*I1-1)/12 ;
13943       J1 = -2*I1+3*I3 ;
13944       if ((2*I1+J1)%3 == 0) {
13945         J2 = (2*I1+J1)/3 ;
13946         J3 = 3*I1-4*J2 ;
13947         S1++;
13948         S2++;
13949       }
13950     }
13951     if ((3*I1+1)%4 == 0) {
13952       I3 = (3*I1+1)/4 ;
13953       J3 = I1-(I2)-(I3) ;
13954       S1++;
13955       J3 = -I1-2*(I2)+2*I3 ;
13956       S2++;
13957     }
13958     for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
13959       J3 = -I1-2*(I2)+2*I3 ;
13960       S2++;
13961     }
13962   }
13963   if (I1%4 == 0) {
13964     for (I3=2*I1/4;I3<=floord(6*I1/4-1,2);I3++) {
13965       J3 = I1-(I2)-(I3) ;
13966       S1++;
13967     }
13968     if (3*I1%4 == 0) {
13969       I3 = 3*I1/4 ;
13970       J1 = -2*I1+3*I3 ;
13971       if ((2*I1+J1)%3 == 0) {
13972         J2 = (2*I1+J1)/3 ;
13973         J3 = 3*I1-4*J2 ;
13974         S1++;
13975         S2++;
13976       }
13977     }
13978     for (I3=3*I1/4+1;I3<=min(N1,floord(11*I1/4,3));I3++) {
13979       J3 = -I1-2*(I2)+2*I3 ;
13980       S2++;
13981     }
13982   }
13983   for (I2=ceild(I1+1,4);I2<=floord(-I1+2*N1,2);I2++) {
13984     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
13985       J3 = I1-(I2)-(I3) ;
13986       S1++;
13987     }
13988     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
13989       J3 = -I1-2*(I2)+2*I3 ;
13990       S2++;
13991     }
13992   }
13993   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
13994     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
13995       J3 = I1-(I2)-(I3) ;
13996       S1++;
13997     }
13998   }
14000 if (N1 >= 32) {
14001   if ((4*N1-5)%3 == 0) {
14002     I1 = (4*N1-5)/3 ;
14003     for (I2=1;I2<=floord(N1-8,6);I2++) {
14004       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14005         J3 = -I1-2*(I2)+2*I3 ;
14006         S2++;
14007       }
14008     }
14009     for (I2=max(ceild(N1-5,6),ceild(N1+10,9));I2<=floord(4*N1-8,21);I2++) {
14010       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14011         J3 = -I1-2*(I2)+2*I3 ;
14012         S2++;
14013       }
14014       for (I3=I1-2*I2;I3<=N1;I3++) {
14015         J3 = I1-(I2)-(I3) ;
14016         S1++;
14017         J3 = -I1-2*(I2)+2*I3 ;
14018         S2++;
14019       }
14020     }
14021     if ((4*N1-5)%21 == 0) {
14022       I2 = (4*N1-5)/21 ;
14023       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
14024         J3 = -I1-2*(I2)+2*I3 ;
14025         S2++;
14026       }
14027       if (5*I1%7 == 0) {
14028         I3 = 5*I1/7 ;
14029         J1 = -2*I1+3*I3 ;
14030         if ((2*I1+J1)%3 == 0) {
14031           J2 = (2*I1+J1)/3 ;
14032           J3 = 3*I1-4*J2 ;
14033           S1++;
14034           S2++;
14035         }
14036       }
14037       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
14038         J3 = I1-(I2)-(I3) ;
14039         S1++;
14040         J3 = -I1-2*(I2)+2*I3 ;
14041         S2++;
14042       }
14043     }
14044     for (I2=ceild(4*N1-2,21);I2<=floord(4*N1-11,18);I2++) {
14045       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14046         J3 = -I1-2*(I2)+2*I3 ;
14047         S2++;
14048       }
14049       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
14050         J3 = -I1-2*(I2)+2*I3 ;
14051         S2++;
14052         J3 = I1-(I2)-(I3) ;
14053         S1++;
14054       }
14055       if ((2*I1+I2)%3 == 0) {
14056         I3 = (2*I1+I2)/3 ;
14057         J1 = -2*I1+3*I3 ;
14058         if ((2*I1+J1)%3 == 0) {
14059           J2 = (2*I1+J1)/3 ;
14060           J3 = 3*I1-4*J2 ;
14061           S1++;
14062           S2++;
14063         }
14064       }
14065       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14066         J3 = I1-(I2)-(I3) ;
14067         S1++;
14068         J3 = -I1-2*(I2)+2*I3 ;
14069         S2++;
14070       }
14071     }
14072     if ((2*N1-4)%9 == 0) {
14073       I2 = (2*N1-4)/9 ;
14074       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
14075         J3 = -I1-2*(I2)+2*I3 ;
14076         S2++;
14077         J3 = I1-(I2)-(I3) ;
14078         S1++;
14079       }
14080       if ((13*I1-1)%18 == 0) {
14081         I3 = (13*I1-1)/18 ;
14082         J1 = -2*I1+3*I3 ;
14083         if ((2*I1+J1)%3 == 0) {
14084           J2 = (2*I1+J1)/3 ;
14085           J3 = 3*I1-4*J2 ;
14086           S1++;
14087           S2++;
14088         }
14089       }
14090       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
14091         J3 = I1-(I2)-(I3) ;
14092         S1++;
14093         J3 = -I1-2*(I2)+2*I3 ;
14094         S2++;
14095       }
14096     }
14097     if ((4*N1-5)%18 == 0) {
14098       I2 = (4*N1-5)/18 ;
14099       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
14100         J3 = -I1-2*(I2)+2*I3 ;
14101         S2++;
14102         J3 = I1-(I2)-(I3) ;
14103         S1++;
14104       }
14105       if (13*I1%18 == 0) {
14106         I3 = 13*I1/18 ;
14107         J1 = -2*I1+3*I3 ;
14108         if ((2*I1+J1)%3 == 0) {
14109           J2 = (2*I1+J1)/3 ;
14110           J3 = 3*I1-4*J2 ;
14111           S1++;
14112           S2++;
14113         }
14114       }
14115       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
14116         J3 = I1-(I2)-(I3) ;
14117         S1++;
14118         J3 = -I1-2*(I2)+2*I3 ;
14119         S2++;
14120       }
14121     }
14122     for (I2=ceild(2*N1-1,9);I2<=floord(N1-5,3);I2++) {
14123       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
14124         J3 = I1-(I2)-(I3) ;
14125         S1++;
14126       }
14127       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
14128         J3 = -I1-2*(I2)+2*I3 ;
14129         S2++;
14130         J3 = I1-(I2)-(I3) ;
14131         S1++;
14132       }
14133       if ((2*I1+I2)%3 == 0) {
14134         I3 = (2*I1+I2)/3 ;
14135         J1 = -2*I1+3*I3 ;
14136         if ((2*I1+J1)%3 == 0) {
14137           J2 = (2*I1+J1)/3 ;
14138           J3 = 3*I1-4*J2 ;
14139           S1++;
14140           S2++;
14141         }
14142       }
14143       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14144         J3 = I1-(I2)-(I3) ;
14145         S1++;
14146         J3 = -I1-2*(I2)+2*I3 ;
14147         S2++;
14148       }
14149     }
14150     if ((N1-2)%3 == 0) {
14151       I2 = (N1-2)/3 ;
14152       for (I3=2*I2+1;I3<=3*I2;I3++) {
14153         J3 = I1-(I2)-(I3) ;
14154         S1++;
14155       }
14156       if ((9*I1-1)%12 == 0) {
14157         I3 = (9*I1-1)/12 ;
14158         J1 = -2*I1+3*I3 ;
14159         if ((2*I1+J1)%3 == 0) {
14160           J2 = (2*I1+J1)/3 ;
14161           J3 = 3*I1-4*J2 ;
14162           S1++;
14163           S2++;
14164         }
14165       }
14166       if ((3*I1+1)%4 == 0) {
14167         I3 = (3*I1+1)/4 ;
14168         J3 = I1-(I2)-(I3) ;
14169         S1++;
14170         J3 = -I1-2*(I2)+2*I3 ;
14171         S2++;
14172       }
14173       for (I3=3*I2+2;I3<=min(N1,floord(11*I2+2,3));I3++) {
14174         J3 = -I1-2*(I2)+2*I3 ;
14175         S2++;
14176       }
14177     }
14178     if ((4*N1-5)%12 == 0) {
14179       I2 = (4*N1-5)/12 ;
14180       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
14181         J3 = I1-(I2)-(I3) ;
14182         S1++;
14183       }
14184       if (3*I1%4 == 0) {
14185         I3 = 3*I1/4 ;
14186         J1 = -2*I1+3*I3 ;
14187         if ((2*I1+J1)%3 == 0) {
14188           J2 = (2*I1+J1)/3 ;
14189           J3 = 3*I1-4*J2 ;
14190           S1++;
14191           S2++;
14192         }
14193       }
14194       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
14195         J3 = -I1-2*(I2)+2*I3 ;
14196         S2++;
14197       }
14198     }
14199     for (I2=ceild(2*N1-1,6);I2<=floord(2*N1+5,6);I2++) {
14200       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
14201         J3 = I1-(I2)-(I3) ;
14202         S1++;
14203       }
14204       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14205         J3 = -I1-2*(I2)+2*I3 ;
14206         S2++;
14207       }
14208     }
14209     for (I2=ceild(N1+4,3);I2<=N1;I2++) {
14210       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
14211         J3 = I1-(I2)-(I3) ;
14212         S1++;
14213       }
14214     }
14215   }
14217 if (N1 >= 25) {
14218   if ((4*N1-4)%3 == 0) {
14219     I1 = (4*N1-4)/3 ;
14220     for (I2=1;I2<=floord(N1-7,6);I2++) {
14221       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14222         J3 = -I1-2*(I2)+2*I3 ;
14223         S2++;
14224       }
14225     }
14226     for (I2=max(ceild(N1-4,6),ceild(N1+8,9));I2<=floord(4*N1-7,21);I2++) {
14227       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14228         J3 = -I1-2*(I2)+2*I3 ;
14229         S2++;
14230       }
14231       for (I3=I1-2*I2;I3<=N1;I3++) {
14232         J3 = I1-(I2)-(I3) ;
14233         S1++;
14234         J3 = -I1-2*(I2)+2*I3 ;
14235         S2++;
14236       }
14237     }
14238     if ((4*N1-4)%21 == 0) {
14239       I2 = (4*N1-4)/21 ;
14240       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
14241         J3 = -I1-2*(I2)+2*I3 ;
14242         S2++;
14243       }
14244       if (5*I1%7 == 0) {
14245         I3 = 5*I1/7 ;
14246         J1 = -2*I1+3*I3 ;
14247         if ((2*I1+J1)%3 == 0) {
14248           J2 = (2*I1+J1)/3 ;
14249           J3 = 3*I1-4*J2 ;
14250           S1++;
14251           S2++;
14252         }
14253       }
14254       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
14255         J3 = I1-(I2)-(I3) ;
14256         S1++;
14257         J3 = -I1-2*(I2)+2*I3 ;
14258         S2++;
14259       }
14260     }
14261     for (I2=ceild(4*N1-1,21);I2<=floord(2*N1-5,9);I2++) {
14262       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14263         J3 = -I1-2*(I2)+2*I3 ;
14264         S2++;
14265       }
14266       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
14267         J3 = -I1-2*(I2)+2*I3 ;
14268         S2++;
14269         J3 = I1-(I2)-(I3) ;
14270         S1++;
14271       }
14272       if ((2*I1+I2)%3 == 0) {
14273         I3 = (2*I1+I2)/3 ;
14274         J1 = -2*I1+3*I3 ;
14275         if ((2*I1+J1)%3 == 0) {
14276           J2 = (2*I1+J1)/3 ;
14277           J3 = 3*I1-4*J2 ;
14278           S1++;
14279           S2++;
14280         }
14281       }
14282       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14283         J3 = I1-(I2)-(I3) ;
14284         S1++;
14285         J3 = -I1-2*(I2)+2*I3 ;
14286         S2++;
14287       }
14288     }
14289     if ((4*N1-7)%18 == 0) {
14290       I2 = (4*N1-7)/18 ;
14291       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
14292         J3 = -I1-2*(I2)+2*I3 ;
14293         S2++;
14294         J3 = I1-(I2)-(I3) ;
14295         S1++;
14296       }
14297       if ((13*I1-1)%18 == 0) {
14298         I3 = (13*I1-1)/18 ;
14299         J1 = -2*I1+3*I3 ;
14300         if ((2*I1+J1)%3 == 0) {
14301           J2 = (2*I1+J1)/3 ;
14302           J3 = 3*I1-4*J2 ;
14303           S1++;
14304           S2++;
14305         }
14306       }
14307       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
14308         J3 = I1-(I2)-(I3) ;
14309         S1++;
14310         J3 = -I1-2*(I2)+2*I3 ;
14311         S2++;
14312       }
14313     }
14314     if ((2*N1-2)%9 == 0) {
14315       I2 = (2*N1-2)/9 ;
14316       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
14317         J3 = -I1-2*(I2)+2*I3 ;
14318         S2++;
14319         J3 = I1-(I2)-(I3) ;
14320         S1++;
14321       }
14322       if (13*I1%18 == 0) {
14323         I3 = 13*I1/18 ;
14324         J1 = -2*I1+3*I3 ;
14325         if ((2*I1+J1)%3 == 0) {
14326           J2 = (2*I1+J1)/3 ;
14327           J3 = 3*I1-4*J2 ;
14328           S1++;
14329           S2++;
14330         }
14331       }
14332       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
14333         J3 = I1-(I2)-(I3) ;
14334         S1++;
14335         J3 = -I1-2*(I2)+2*I3 ;
14336         S2++;
14337       }
14338     }
14339     for (I2=ceild(4*N1-1,18);I2<=floord(N1-4,3);I2++) {
14340       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
14341         J3 = I1-(I2)-(I3) ;
14342         S1++;
14343       }
14344       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
14345         J3 = -I1-2*(I2)+2*I3 ;
14346         S2++;
14347         J3 = I1-(I2)-(I3) ;
14348         S1++;
14349       }
14350       if ((2*I1+I2)%3 == 0) {
14351         I3 = (2*I1+I2)/3 ;
14352         J1 = -2*I1+3*I3 ;
14353         if ((2*I1+J1)%3 == 0) {
14354           J2 = (2*I1+J1)/3 ;
14355           J3 = 3*I1-4*J2 ;
14356           S1++;
14357           S2++;
14358         }
14359       }
14360       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14361         J3 = I1-(I2)-(I3) ;
14362         S1++;
14363         J3 = -I1-2*(I2)+2*I3 ;
14364         S2++;
14365       }
14366     }
14367     if ((N1-1)%3 == 0) {
14368       I2 = (N1-1)/3 ;
14369       for (I3=2*I2;I3<=floord(6*I2-1,2);I3++) {
14370         J3 = I1-(I2)-(I3) ;
14371         S1++;
14372       }
14373       if (3*I1%4 == 0) {
14374         I3 = 3*I1/4 ;
14375         J1 = -2*I1+3*I3 ;
14376         if ((2*I1+J1)%3 == 0) {
14377           J2 = (2*I1+J1)/3 ;
14378           J3 = 3*I1-4*J2 ;
14379           S1++;
14380           S2++;
14381         }
14382       }
14383       for (I3=3*I2+1;I3<=min(N1,floord(11*I2,3));I3++) {
14384         J3 = -I1-2*(I2)+2*I3 ;
14385         S2++;
14386       }
14387     }
14388     for (I2=ceild(4*N1-1,12);I2<=floord(N1+2,3);I2++) {
14389       for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
14390         J3 = I1-(I2)-(I3) ;
14391         S1++;
14392       }
14393       for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14394         J3 = -I1-2*(I2)+2*I3 ;
14395         S2++;
14396       }
14397     }
14398     for (I2=ceild(2*N1+7,6);I2<=N1;I2++) {
14399       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
14400         J3 = I1-(I2)-(I3) ;
14401         S1++;
14402       }
14403     }
14404   }
14406 for (I1=max(max(20,ceild(9*N1-1,7)),ceild(4*N1-3,3));I1<=floord(4*N1-2,3);I1++) {
14407   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
14408     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14409       J3 = -I1-2*(I2)+2*I3 ;
14410       S2++;
14411     }
14412   }
14413   for (I2=max(ceild(I1-N1,2),ceild(-2*I1+3*N1,3));I2<=floord(I1-1,7);I2++) {
14414     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14415       J3 = -I1-2*(I2)+2*I3 ;
14416       S2++;
14417     }
14418     for (I3=I1-2*I2;I3<=N1;I3++) {
14419       J3 = I1-(I2)-(I3) ;
14420       S1++;
14421       J3 = -I1-2*(I2)+2*I3 ;
14422       S2++;
14423     }
14424   }
14425   if (I1%7 == 0) {
14426     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
14427       J3 = -I1-2*(I2)+2*I3 ;
14428       S2++;
14429     }
14430     if (5*I1%7 == 0) {
14431       I3 = 5*I1/7 ;
14432       J1 = -2*I1+3*I3 ;
14433       if ((2*I1+J1)%3 == 0) {
14434         J2 = (2*I1+J1)/3 ;
14435         J3 = 3*I1-4*J2 ;
14436         S1++;
14437         S2++;
14438       }
14439     }
14440     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
14441       J3 = I1-(I2)-(I3) ;
14442       S1++;
14443       J3 = -I1-2*(I2)+2*I3 ;
14444       S2++;
14445     }
14446   }
14447   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
14448     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14449       J3 = -I1-2*(I2)+2*I3 ;
14450       S2++;
14451     }
14452     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
14453       J3 = -I1-2*(I2)+2*I3 ;
14454       S2++;
14455       J3 = I1-(I2)-(I3) ;
14456       S1++;
14457     }
14458     if ((2*I1+I2)%3 == 0) {
14459       I3 = (2*I1+I2)/3 ;
14460       J1 = -2*I1+3*I3 ;
14461       if ((2*I1+J1)%3 == 0) {
14462         J2 = (2*I1+J1)/3 ;
14463         J3 = 3*I1-4*J2 ;
14464         S1++;
14465         S2++;
14466       }
14467     }
14468     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14469       J3 = I1-(I2)-(I3) ;
14470       S1++;
14471       J3 = -I1-2*(I2)+2*I3 ;
14472       S2++;
14473     }
14474   }
14475   if ((I1-1)%6 == 0) {
14476     I2 = (I1-1)/6 ;
14477     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
14478       J3 = -I1-2*(I2)+2*I3 ;
14479       S2++;
14480       J3 = I1-(I2)-(I3) ;
14481       S1++;
14482     }
14483     if ((13*I1-1)%18 == 0) {
14484       I3 = (13*I1-1)/18 ;
14485       J1 = -2*I1+3*I3 ;
14486       if ((2*I1+J1)%3 == 0) {
14487         J2 = (2*I1+J1)/3 ;
14488         J3 = 3*I1-4*J2 ;
14489         S1++;
14490         S2++;
14491       }
14492     }
14493     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
14494       J3 = I1-(I2)-(I3) ;
14495       S1++;
14496       J3 = -I1-2*(I2)+2*I3 ;
14497       S2++;
14498     }
14499   }
14500   if (I1%6 == 0) {
14501     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
14502       J3 = -I1-2*(I2)+2*I3 ;
14503       S2++;
14504       J3 = I1-(I2)-(I3) ;
14505       S1++;
14506     }
14507     if (13*I1%18 == 0) {
14508       I3 = 13*I1/18 ;
14509       J1 = -2*I1+3*I3 ;
14510       if ((2*I1+J1)%3 == 0) {
14511         J2 = (2*I1+J1)/3 ;
14512         J3 = 3*I1-4*J2 ;
14513         S1++;
14514         S2++;
14515       }
14516     }
14517     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
14518       J3 = I1-(I2)-(I3) ;
14519       S1++;
14520       J3 = -I1-2*(I2)+2*I3 ;
14521       S2++;
14522     }
14523   }
14524   for (I2=ceild(I1+1,6);I2<=I1-N1;I2++) {
14525     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
14526       J3 = I1-(I2)-(I3) ;
14527       S1++;
14528     }
14529     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
14530       J3 = -I1-2*(I2)+2*I3 ;
14531       S2++;
14532       J3 = I1-(I2)-(I3) ;
14533       S1++;
14534     }
14535     if ((2*I1+I2)%3 == 0) {
14536       I3 = (2*I1+I2)/3 ;
14537       J1 = -2*I1+3*I3 ;
14538       if ((2*I1+J1)%3 == 0) {
14539         J2 = (2*I1+J1)/3 ;
14540         J3 = 3*I1-4*J2 ;
14541         S1++;
14542         S2++;
14543       }
14544     }
14545     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14546       J3 = I1-(I2)-(I3) ;
14547       S1++;
14548       J3 = -I1-2*(I2)+2*I3 ;
14549       S2++;
14550     }
14551   }
14552   for (I2=I1-N1+1;I2<=floord(-I1+2*N1,2);I2++) {
14553     for (I3=max(max(1,ceild(I1-I2,2)),I1-2*I2);I3<=I1-I2;I3++) {
14554       J3 = I1-(I2)-(I3) ;
14555       S1++;
14556     }
14557     for (I3=max(I1-I2+1,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14558       J3 = -I1-2*(I2)+2*I3 ;
14559       S2++;
14560     }
14561   }
14562   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
14563     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
14564       J3 = I1-(I2)-(I3) ;
14565       S1++;
14566     }
14567   }
14569 if (N1 >= 16) {
14570   if ((4*N1-1)%3 == 0) {
14571     I1 = (4*N1-1)/3 ;
14572     for (I2=1;I2<=floord(N1-4,6);I2++) {
14573       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14574         J3 = -I1-2*(I2)+2*I3 ;
14575         S2++;
14576       }
14577     }
14578     for (I2=ceild(N1-1,6);I2<=floord(4*N1-4,21);I2++) {
14579       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14580         J3 = -I1-2*(I2)+2*I3 ;
14581         S2++;
14582       }
14583       for (I3=I1-2*I2;I3<=N1;I3++) {
14584         J3 = I1-(I2)-(I3) ;
14585         S1++;
14586         J3 = -I1-2*(I2)+2*I3 ;
14587         S2++;
14588       }
14589     }
14590     if ((4*N1-1)%21 == 0) {
14591       I2 = (4*N1-1)/21 ;
14592       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
14593         J3 = -I1-2*(I2)+2*I3 ;
14594         S2++;
14595       }
14596       if (5*I1%7 == 0) {
14597         I3 = 5*I1/7 ;
14598         J1 = -2*I1+3*I3 ;
14599         if ((2*I1+J1)%3 == 0) {
14600           J2 = (2*I1+J1)/3 ;
14601           J3 = 3*I1-4*J2 ;
14602           S1++;
14603           S2++;
14604         }
14605       }
14606       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
14607         J3 = I1-(I2)-(I3) ;
14608         S1++;
14609         J3 = -I1-2*(I2)+2*I3 ;
14610         S2++;
14611       }
14612     }
14613     for (I2=ceild(4*N1+2,21);I2<=floord(4*N1-7,18);I2++) {
14614       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14615         J3 = -I1-2*(I2)+2*I3 ;
14616         S2++;
14617       }
14618       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
14619         J3 = -I1-2*(I2)+2*I3 ;
14620         S2++;
14621         J3 = I1-(I2)-(I3) ;
14622         S1++;
14623       }
14624       if ((2*I1+I2)%3 == 0) {
14625         I3 = (2*I1+I2)/3 ;
14626         J1 = -2*I1+3*I3 ;
14627         if ((2*I1+J1)%3 == 0) {
14628           J2 = (2*I1+J1)/3 ;
14629           J3 = 3*I1-4*J2 ;
14630           S1++;
14631           S2++;
14632         }
14633       }
14634       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14635         J3 = I1-(I2)-(I3) ;
14636         S1++;
14637         J3 = -I1-2*(I2)+2*I3 ;
14638         S2++;
14639       }
14640     }
14641     if ((2*N1-2)%9 == 0) {
14642       I2 = (2*N1-2)/9 ;
14643       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
14644         J3 = -I1-2*(I2)+2*I3 ;
14645         S2++;
14646         J3 = I1-(I2)-(I3) ;
14647         S1++;
14648       }
14649       if ((13*I1-1)%18 == 0) {
14650         I3 = (13*I1-1)/18 ;
14651         J1 = -2*I1+3*I3 ;
14652         if ((2*I1+J1)%3 == 0) {
14653           J2 = (2*I1+J1)/3 ;
14654           J3 = 3*I1-4*J2 ;
14655           S1++;
14656           S2++;
14657         }
14658       }
14659       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
14660         J3 = I1-(I2)-(I3) ;
14661         S1++;
14662         J3 = -I1-2*(I2)+2*I3 ;
14663         S2++;
14664       }
14665     }
14666     if ((4*N1-1)%18 == 0) {
14667       I2 = (4*N1-1)/18 ;
14668       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
14669         J3 = -I1-2*(I2)+2*I3 ;
14670         S2++;
14671         J3 = I1-(I2)-(I3) ;
14672         S1++;
14673       }
14674       if (13*I1%18 == 0) {
14675         I3 = 13*I1/18 ;
14676         J1 = -2*I1+3*I3 ;
14677         if ((2*I1+J1)%3 == 0) {
14678           J2 = (2*I1+J1)/3 ;
14679           J3 = 3*I1-4*J2 ;
14680           S1++;
14681           S2++;
14682         }
14683       }
14684       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
14685         J3 = I1-(I2)-(I3) ;
14686         S1++;
14687         J3 = -I1-2*(I2)+2*I3 ;
14688         S2++;
14689       }
14690     }
14691     for (I2=ceild(2*N1+1,9);I2<=floord(4*N1-7,12);I2++) {
14692       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
14693         J3 = I1-(I2)-(I3) ;
14694         S1++;
14695       }
14696       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
14697         J3 = -I1-2*(I2)+2*I3 ;
14698         S2++;
14699         J3 = I1-(I2)-(I3) ;
14700         S1++;
14701       }
14702       if ((2*I1+I2)%3 == 0) {
14703         I3 = (2*I1+I2)/3 ;
14704         J1 = -2*I1+3*I3 ;
14705         if ((2*I1+J1)%3 == 0) {
14706           J2 = (2*I1+J1)/3 ;
14707           J3 = 3*I1-4*J2 ;
14708           S1++;
14709           S2++;
14710         }
14711       }
14712       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14713         J3 = I1-(I2)-(I3) ;
14714         S1++;
14715         J3 = -I1-2*(I2)+2*I3 ;
14716         S2++;
14717       }
14718     }
14719     if ((N1-1)%3 == 0) {
14720       I2 = (N1-1)/3 ;
14721       for (I3=ceild(2*N1+1,3);I3<=N1-1;I3++) {
14722         J3 = I1-(I2)-(I3) ;
14723         S1++;
14724       }
14725       if (-1%3 == 0) {
14726         I3 = (3*N1-1)/3 ;
14727         J1 = -2*I1+3*I3 ;
14728         if ((2*I1+J1)%3 == 0) {
14729           J2 = (2*I1+J1)/3 ;
14730           J3 = 3*I1-4*J2 ;
14731           S1++;
14732           S2++;
14733         }
14734       }
14735       J3 = I1-(I2)-(I3) ;
14736       S1++;
14737       J3 = -I1-2*(I2)+2*I3 ;
14738       S2++;
14739     }
14740     for (I2=ceild(N1+2,3);I2<=N1;I2++) {
14741       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
14742         J3 = I1-(I2)-(I3) ;
14743         S1++;
14744       }
14745     }
14746   }
14748 if (N1 >= 15) {
14749   if (4*N1%3 == 0) {
14750     I1 = 4*N1/3 ;
14751     for (I2=1;I2<=floord(N1-3,6);I2++) {
14752       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14753         J3 = -I1-2*(I2)+2*I3 ;
14754         S2++;
14755       }
14756     }
14757     for (I2=ceild(N1,6);I2<=floord(4*N1-3,21);I2++) {
14758       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14759         J3 = -I1-2*(I2)+2*I3 ;
14760         S2++;
14761       }
14762       for (I3=I1-2*I2;I3<=N1;I3++) {
14763         J3 = I1-(I2)-(I3) ;
14764         S1++;
14765         J3 = -I1-2*(I2)+2*I3 ;
14766         S2++;
14767       }
14768     }
14769     if (4*N1%21 == 0) {
14770       I2 = 4*N1/21 ;
14771       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
14772         J3 = -I1-2*(I2)+2*I3 ;
14773         S2++;
14774       }
14775       if (5*I1%7 == 0) {
14776         I3 = 5*I1/7 ;
14777         J1 = -2*I1+3*I3 ;
14778         if ((2*I1+J1)%3 == 0) {
14779           J2 = (2*I1+J1)/3 ;
14780           J3 = 3*I1-4*J2 ;
14781           S1++;
14782           S2++;
14783         }
14784       }
14785       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
14786         J3 = I1-(I2)-(I3) ;
14787         S1++;
14788         J3 = -I1-2*(I2)+2*I3 ;
14789         S2++;
14790       }
14791     }
14792     for (I2=ceild(4*N1+3,21);I2<=floord(2*N1-3,9);I2++) {
14793       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14794         J3 = -I1-2*(I2)+2*I3 ;
14795         S2++;
14796       }
14797       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
14798         J3 = -I1-2*(I2)+2*I3 ;
14799         S2++;
14800         J3 = I1-(I2)-(I3) ;
14801         S1++;
14802       }
14803       if ((2*I1+I2)%3 == 0) {
14804         I3 = (2*I1+I2)/3 ;
14805         J1 = -2*I1+3*I3 ;
14806         if ((2*I1+J1)%3 == 0) {
14807           J2 = (2*I1+J1)/3 ;
14808           J3 = 3*I1-4*J2 ;
14809           S1++;
14810           S2++;
14811         }
14812       }
14813       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14814         J3 = I1-(I2)-(I3) ;
14815         S1++;
14816         J3 = -I1-2*(I2)+2*I3 ;
14817         S2++;
14818       }
14819     }
14820     if ((4*N1-3)%18 == 0) {
14821       I2 = (4*N1-3)/18 ;
14822       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
14823         J3 = -I1-2*(I2)+2*I3 ;
14824         S2++;
14825         J3 = I1-(I2)-(I3) ;
14826         S1++;
14827       }
14828       if ((13*I1-1)%18 == 0) {
14829         I3 = (13*I1-1)/18 ;
14830         J1 = -2*I1+3*I3 ;
14831         if ((2*I1+J1)%3 == 0) {
14832           J2 = (2*I1+J1)/3 ;
14833           J3 = 3*I1-4*J2 ;
14834           S1++;
14835           S2++;
14836         }
14837       }
14838       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
14839         J3 = I1-(I2)-(I3) ;
14840         S1++;
14841         J3 = -I1-2*(I2)+2*I3 ;
14842         S2++;
14843       }
14844     }
14845     if (2*N1%9 == 0) {
14846       I2 = 2*N1/9 ;
14847       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
14848         J3 = -I1-2*(I2)+2*I3 ;
14849         S2++;
14850         J3 = I1-(I2)-(I3) ;
14851         S1++;
14852       }
14853       if (13*I1%18 == 0) {
14854         I3 = 13*I1/18 ;
14855         J1 = -2*I1+3*I3 ;
14856         if ((2*I1+J1)%3 == 0) {
14857           J2 = (2*I1+J1)/3 ;
14858           J3 = 3*I1-4*J2 ;
14859           S1++;
14860           S2++;
14861         }
14862       }
14863       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
14864         J3 = I1-(I2)-(I3) ;
14865         S1++;
14866         J3 = -I1-2*(I2)+2*I3 ;
14867         S2++;
14868       }
14869     }
14870     for (I2=ceild(4*N1+3,18);I2<=floord(N1-3,3);I2++) {
14871       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
14872         J3 = I1-(I2)-(I3) ;
14873         S1++;
14874       }
14875       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
14876         J3 = -I1-2*(I2)+2*I3 ;
14877         S2++;
14878         J3 = I1-(I2)-(I3) ;
14879         S1++;
14880       }
14881       if ((2*I1+I2)%3 == 0) {
14882         I3 = (2*I1+I2)/3 ;
14883         J1 = -2*I1+3*I3 ;
14884         if ((2*I1+J1)%3 == 0) {
14885           J2 = (2*I1+J1)/3 ;
14886           J3 = 3*I1-4*J2 ;
14887           S1++;
14888           S2++;
14889         }
14890       }
14891       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14892         J3 = I1-(I2)-(I3) ;
14893         S1++;
14894         J3 = -I1-2*(I2)+2*I3 ;
14895         S2++;
14896       }
14897     }
14898     if (N1%3 == 0) {
14899       for (I3=ceild(2*N1,3);I3<=floord(2*N1-1,2);I3++) {
14900         J3 = I1-(I2)-(I3) ;
14901         S1++;
14902       }
14903       J1 = -2*I1+3*N1 ;
14904       if ((2*I1+J1)%3 == 0) {
14905         J2 = (2*I1+J1)/3 ;
14906         J3 = 3*I1-4*J2 ;
14907         S1++;
14908         S2++;
14909       }
14910     }
14911     for (I2=ceild(2*N1+3,6);I2<=N1;I2++) {
14912       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
14913         J3 = I1-(I2)-(I3) ;
14914         S1++;
14915       }
14916     }
14917   }
14919 if (N1 >= 17) {
14920   if ((4*N1+1)%3 == 0) {
14921     I1 = (4*N1+1)/3 ;
14922     for (I2=1;I2<=floord(N1-2,6);I2++) {
14923       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
14924         J3 = -I1-2*(I2)+2*I3 ;
14925         S2++;
14926       }
14927     }
14928     for (I2=ceild(N1+1,6);I2<=floord(4*N1-2,21);I2++) {
14929       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14930         J3 = -I1-2*(I2)+2*I3 ;
14931         S2++;
14932       }
14933       for (I3=I1-2*I2;I3<=N1;I3++) {
14934         J3 = I1-(I2)-(I3) ;
14935         S1++;
14936         J3 = -I1-2*(I2)+2*I3 ;
14937         S2++;
14938       }
14939     }
14940     if ((4*N1+1)%21 == 0) {
14941       I2 = (4*N1+1)/21 ;
14942       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
14943         J3 = -I1-2*(I2)+2*I3 ;
14944         S2++;
14945       }
14946       if (5*I1%7 == 0) {
14947         I3 = 5*I1/7 ;
14948         J1 = -2*I1+3*I3 ;
14949         if ((2*I1+J1)%3 == 0) {
14950           J2 = (2*I1+J1)/3 ;
14951           J3 = 3*I1-4*J2 ;
14952           S1++;
14953           S2++;
14954         }
14955       }
14956       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
14957         J3 = I1-(I2)-(I3) ;
14958         S1++;
14959         J3 = -I1-2*(I2)+2*I3 ;
14960         S2++;
14961       }
14962     }
14963     for (I2=ceild(4*N1+4,21);I2<=floord(4*N1-5,18);I2++) {
14964       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
14965         J3 = -I1-2*(I2)+2*I3 ;
14966         S2++;
14967       }
14968       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
14969         J3 = -I1-2*(I2)+2*I3 ;
14970         S2++;
14971         J3 = I1-(I2)-(I3) ;
14972         S1++;
14973       }
14974       if ((2*I1+I2)%3 == 0) {
14975         I3 = (2*I1+I2)/3 ;
14976         J1 = -2*I1+3*I3 ;
14977         if ((2*I1+J1)%3 == 0) {
14978           J2 = (2*I1+J1)/3 ;
14979           J3 = 3*I1-4*J2 ;
14980           S1++;
14981           S2++;
14982         }
14983       }
14984       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
14985         J3 = I1-(I2)-(I3) ;
14986         S1++;
14987         J3 = -I1-2*(I2)+2*I3 ;
14988         S2++;
14989       }
14990     }
14991     if ((2*N1-1)%9 == 0) {
14992       I2 = (2*N1-1)/9 ;
14993       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
14994         J3 = -I1-2*(I2)+2*I3 ;
14995         S2++;
14996         J3 = I1-(I2)-(I3) ;
14997         S1++;
14998       }
14999       if ((13*I1-1)%18 == 0) {
15000         I3 = (13*I1-1)/18 ;
15001         J1 = -2*I1+3*I3 ;
15002         if ((2*I1+J1)%3 == 0) {
15003           J2 = (2*I1+J1)/3 ;
15004           J3 = 3*I1-4*J2 ;
15005           S1++;
15006           S2++;
15007         }
15008       }
15009       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
15010         J3 = I1-(I2)-(I3) ;
15011         S1++;
15012         J3 = -I1-2*(I2)+2*I3 ;
15013         S2++;
15014       }
15015     }
15016     if ((4*N1+1)%18 == 0) {
15017       I2 = (4*N1+1)/18 ;
15018       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
15019         J3 = -I1-2*(I2)+2*I3 ;
15020         S2++;
15021         J3 = I1-(I2)-(I3) ;
15022         S1++;
15023       }
15024       if (13*I1%18 == 0) {
15025         I3 = 13*I1/18 ;
15026         J1 = -2*I1+3*I3 ;
15027         if ((2*I1+J1)%3 == 0) {
15028           J2 = (2*I1+J1)/3 ;
15029           J3 = 3*I1-4*J2 ;
15030           S1++;
15031           S2++;
15032         }
15033       }
15034       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
15035         J3 = I1-(I2)-(I3) ;
15036         S1++;
15037         J3 = -I1-2*(I2)+2*I3 ;
15038         S2++;
15039       }
15040     }
15041     for (I2=ceild(2*N1+2,9);I2<=floord(N1-5,3);I2++) {
15042       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15043         J3 = I1-(I2)-(I3) ;
15044         S1++;
15045       }
15046       for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
15047         J3 = -I1-2*(I2)+2*I3 ;
15048         S2++;
15049         J3 = I1-(I2)-(I3) ;
15050         S1++;
15051       }
15052       if ((2*I1+I2)%3 == 0) {
15053         I3 = (2*I1+I2)/3 ;
15054         J1 = -2*I1+3*I3 ;
15055         if ((2*I1+J1)%3 == 0) {
15056           J2 = (2*I1+J1)/3 ;
15057           J3 = 3*I1-4*J2 ;
15058           S1++;
15059           S2++;
15060         }
15061       }
15062       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15063         J3 = I1-(I2)-(I3) ;
15064         S1++;
15065         J3 = -I1-2*(I2)+2*I3 ;
15066         S2++;
15067       }
15068     }
15069     if ((N1-2)%3 == 0) {
15070       I2 = (N1-2)/3 ;
15071       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*I2+3*N1-2,4);I3++) {
15072         J3 = I1-(I2)-(I3) ;
15073         S1++;
15074       }
15075       for (I3=ceild(3*I2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
15076         J3 = -I1-2*(I2)+2*I3 ;
15077         S2++;
15078         J3 = I1-(I2)-(I3) ;
15079         S1++;
15080       }
15081       J1 = -2*I1+3*N1 ;
15082       if ((2*I1+J1)%3 == 0) {
15083         J2 = (2*I1+J1)/3 ;
15084         J3 = 3*I1-4*J2 ;
15085         S1++;
15086         S2++;
15087       }
15088     }
15089     for (I2=ceild(N1+1,3);I2<=N1;I2++) {
15090       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15091         J3 = I1-(I2)-(I3) ;
15092         S1++;
15093       }
15094     }
15095   }
15097 for (I1=ceild(4*N1+2,3);I1<=floord(18*N1-7,13);I1++) {
15098   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
15099     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15100       J3 = -I1-2*(I2)+2*I3 ;
15101       S2++;
15102     }
15103   }
15104   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,7);I2++) {
15105     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15106       J3 = -I1-2*(I2)+2*I3 ;
15107       S2++;
15108     }
15109     for (I3=I1-2*I2;I3<=N1;I3++) {
15110       J3 = I1-(I2)-(I3) ;
15111       S1++;
15112       J3 = -I1-2*(I2)+2*I3 ;
15113       S2++;
15114     }
15115   }
15116   if (I1%7 == 0) {
15117     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
15118       J3 = -I1-2*(I2)+2*I3 ;
15119       S2++;
15120     }
15121     if (5*I1%7 == 0) {
15122       I3 = 5*I1/7 ;
15123       J1 = -2*I1+3*I3 ;
15124       if ((2*I1+J1)%3 == 0) {
15125         J2 = (2*I1+J1)/3 ;
15126         J3 = 3*I1-4*J2 ;
15127         S1++;
15128         S2++;
15129       }
15130     }
15131     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
15132       J3 = I1-(I2)-(I3) ;
15133       S1++;
15134       J3 = -I1-2*(I2)+2*I3 ;
15135       S2++;
15136     }
15137   }
15138   for (I2=ceild(I1+1,7);I2<=floord(I1-2,6);I2++) {
15139     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15140       J3 = -I1-2*(I2)+2*I3 ;
15141       S2++;
15142     }
15143     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
15144       J3 = -I1-2*(I2)+2*I3 ;
15145       S2++;
15146       J3 = I1-(I2)-(I3) ;
15147       S1++;
15148     }
15149     if ((2*I1+I2)%3 == 0) {
15150       I3 = (2*I1+I2)/3 ;
15151       J1 = -2*I1+3*I3 ;
15152       if ((2*I1+J1)%3 == 0) {
15153         J2 = (2*I1+J1)/3 ;
15154         J3 = 3*I1-4*J2 ;
15155         S1++;
15156         S2++;
15157       }
15158     }
15159     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15160       J3 = I1-(I2)-(I3) ;
15161       S1++;
15162       J3 = -I1-2*(I2)+2*I3 ;
15163       S2++;
15164     }
15165   }
15166   if ((I1-1)%6 == 0) {
15167     I2 = (I1-1)/6 ;
15168     for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
15169       J3 = -I1-2*(I2)+2*I3 ;
15170       S2++;
15171       J3 = I1-(I2)-(I3) ;
15172       S1++;
15173     }
15174     if ((13*I1-1)%18 == 0) {
15175       I3 = (13*I1-1)/18 ;
15176       J1 = -2*I1+3*I3 ;
15177       if ((2*I1+J1)%3 == 0) {
15178         J2 = (2*I1+J1)/3 ;
15179         J3 = 3*I1-4*J2 ;
15180         S1++;
15181         S2++;
15182       }
15183     }
15184     for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
15185       J3 = I1-(I2)-(I3) ;
15186       S1++;
15187       J3 = -I1-2*(I2)+2*I3 ;
15188       S2++;
15189     }
15190   }
15191   if (I1%6 == 0) {
15192     for (I3=4*I1/6;I3<=floord(13*I1/6-1,3);I3++) {
15193       J3 = -I1-2*(I2)+2*I3 ;
15194       S2++;
15195       J3 = I1-(I2)-(I3) ;
15196       S1++;
15197     }
15198     if (13*I1%18 == 0) {
15199       I3 = 13*I1/18 ;
15200       J1 = -2*I1+3*I3 ;
15201       if ((2*I1+J1)%3 == 0) {
15202         J2 = (2*I1+J1)/3 ;
15203         J3 = 3*I1-4*J2 ;
15204         S1++;
15205         S2++;
15206       }
15207     }
15208     for (I3=ceild(13*I1/6+1,3);I3<=min(N1,5*I1/6);I3++) {
15209       J3 = I1-(I2)-(I3) ;
15210       S1++;
15211       J3 = -I1-2*(I2)+2*I3 ;
15212       S2++;
15213     }
15214   }
15215   for (I2=ceild(I1+1,6);I2<=-2*I1+3*N1-1;I2++) {
15216     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15217       J3 = I1-(I2)-(I3) ;
15218       S1++;
15219     }
15220     for (I3=ceild(I1+2*I2,2);I3<=floord(2*I1+I2-1,3);I3++) {
15221       J3 = -I1-2*(I2)+2*I3 ;
15222       S2++;
15223       J3 = I1-(I2)-(I3) ;
15224       S1++;
15225     }
15226     if ((2*I1+I2)%3 == 0) {
15227       I3 = (2*I1+I2)/3 ;
15228       J1 = -2*I1+3*I3 ;
15229       if ((2*I1+J1)%3 == 0) {
15230         J2 = (2*I1+J1)/3 ;
15231         J3 = 3*I1-4*J2 ;
15232         S1++;
15233         S2++;
15234       }
15235     }
15236     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15237       J3 = I1-(I2)-(I3) ;
15238       S1++;
15239       J3 = -I1-2*(I2)+2*I3 ;
15240       S2++;
15241     }
15242   }
15243   I2 = -2*I1+3*N1 ;
15244   for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*I2+3*N1-2,4);I3++) {
15245     J3 = I1-(I2)-(I3) ;
15246     S1++;
15247   }
15248   for (I3=ceild(3*I2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
15249     J3 = -I1-2*(I2)+2*I3 ;
15250     S2++;
15251     J3 = I1-(I2)-(I3) ;
15252     S1++;
15253   }
15254   J1 = -2*I1+3*N1 ;
15255   if ((2*I1+J1)%3 == 0) {
15256     J2 = (2*I1+J1)/3 ;
15257     J3 = 3*I1-4*J2 ;
15258     S1++;
15259     S2++;
15260   }
15261   for (I2=-2*I1+3*N1+1;I2<=floord(-I1+2*N1,2);I2++) {
15262     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15263       J3 = I1-(I2)-(I3) ;
15264       S1++;
15265     }
15266     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
15267       J3 = -I1-2*(I2)+2*I3 ;
15268       S2++;
15269       J3 = I1-(I2)-(I3) ;
15270       S1++;
15271     }
15272   }
15273   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
15274     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15275       J3 = I1-(I2)-(I3) ;
15276       S1++;
15277     }
15278   }
15280 if (N1 >= 22) {
15281   if ((18*N1-6)%13 == 0) {
15282     I1 = (18*N1-6)/13 ;
15283     for (I2=1;I2<=floord(5*N1-19,26);I2++) {
15284       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15285         J3 = -I1-2*(I2)+2*I3 ;
15286         S2++;
15287       }
15288     }
15289     for (I2=ceild(5*N1-6,26);I2<=floord(18*N1-19,91);I2++) {
15290       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15291         J3 = -I1-2*(I2)+2*I3 ;
15292         S2++;
15293       }
15294       for (I3=I1-2*I2;I3<=N1;I3++) {
15295         J3 = I1-(I2)-(I3) ;
15296         S1++;
15297         J3 = -I1-2*(I2)+2*I3 ;
15298         S2++;
15299       }
15300     }
15301     if ((18*N1-6)%91 == 0) {
15302       I2 = (18*N1-6)/91 ;
15303       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
15304         J3 = -I1-2*(I2)+2*I3 ;
15305         S2++;
15306       }
15307       if (5*I1%7 == 0) {
15308         I3 = 5*I1/7 ;
15309         J1 = -2*I1+3*I3 ;
15310         if ((2*I1+J1)%3 == 0) {
15311           J2 = (2*I1+J1)/3 ;
15312           J3 = 3*I1-4*J2 ;
15313           S1++;
15314           S2++;
15315         }
15316       }
15317       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
15318         J3 = I1-(I2)-(I3) ;
15319         S1++;
15320         J3 = -I1-2*(I2)+2*I3 ;
15321         S2++;
15322       }
15323     }
15324     for (I2=ceild(18*N1+7,91);I2<=floord(9*N1-16,39);I2++) {
15325       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15326         J3 = -I1-2*(I2)+2*I3 ;
15327         S2++;
15328       }
15329       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
15330         J3 = -I1-2*(I2)+2*I3 ;
15331         S2++;
15332         J3 = I1-(I2)-(I3) ;
15333         S1++;
15334       }
15335       if ((2*I1+I2)%3 == 0) {
15336         I3 = (2*I1+I2)/3 ;
15337         J1 = -2*I1+3*I3 ;
15338         if ((2*I1+J1)%3 == 0) {
15339           J2 = (2*I1+J1)/3 ;
15340           J3 = 3*I1-4*J2 ;
15341           S1++;
15342           S2++;
15343         }
15344       }
15345       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15346         J3 = I1-(I2)-(I3) ;
15347         S1++;
15348         J3 = -I1-2*(I2)+2*I3 ;
15349         S2++;
15350       }
15351     }
15352     if ((18*N1-19)%78 == 0) {
15353       I2 = (18*N1-19)/78 ;
15354       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
15355         J3 = -I1-2*(I2)+2*I3 ;
15356         S2++;
15357         J3 = I1-(I2)-(I3) ;
15358         S1++;
15359       }
15360       if ((13*I1-1)%18 == 0) {
15361         I3 = (13*I1-1)/18 ;
15362         J1 = -2*I1+3*I3 ;
15363         if ((2*I1+J1)%3 == 0) {
15364           J2 = (2*I1+J1)/3 ;
15365           J3 = 3*I1-4*J2 ;
15366           S1++;
15367           S2++;
15368         }
15369       }
15370       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
15371         J3 = I1-(I2)-(I3) ;
15372         S1++;
15373         J3 = -I1-2*(I2)+2*I3 ;
15374         S2++;
15375       }
15376     }
15377     if ((3*N1-1)%13 == 0) {
15378       I2 = (3*N1-1)/13 ;
15379       for (I3=4*I2;I3<=floord(13*I2-1,3);I3++) {
15380         J3 = -I1-2*(I2)+2*I3 ;
15381         S2++;
15382         J3 = I1-(I2)-(I3) ;
15383         S1++;
15384       }
15385       if (13*I1%18 == 0) {
15386         I3 = 13*I1/18 ;
15387         J1 = -2*I1+3*I3 ;
15388         if ((2*I1+J1)%3 == 0) {
15389           J2 = (2*I1+J1)/3 ;
15390           J3 = 3*I1-4*J2 ;
15391           S1++;
15392           S2++;
15393         }
15394       }
15395       for (I3=ceild(13*I2+1,3);I3<=min(N1,5*I2);I3++) {
15396         J3 = I1-(I2)-(I3) ;
15397         S1++;
15398         J3 = -I1-2*(I2)+2*I3 ;
15399         S2++;
15400       }
15401     }
15402     if ((3*N1+12)%13 == 0) {
15403       I2 = (3*N1+12)/13 ;
15404       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*I2+3*N1-2,4);I3++) {
15405         J3 = I1-(I2)-(I3) ;
15406         S1++;
15407       }
15408       for (I3=ceild(3*I2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
15409         J3 = -I1-2*(I2)+2*I3 ;
15410         S2++;
15411         J3 = I1-(I2)-(I3) ;
15412         S1++;
15413       }
15414       J1 = -2*I1+3*N1 ;
15415       if ((2*I1+J1)%3 == 0) {
15416         J2 = (2*I1+J1)/3 ;
15417         J3 = 3*I1-4*J2 ;
15418         S1++;
15419         S2++;
15420       }
15421     }
15422     for (I2=ceild(3*N1+25,13);I2<=floord(4*N1+3,13);I2++) {
15423       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15424         J3 = I1-(I2)-(I3) ;
15425         S1++;
15426       }
15427       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
15428         J3 = -I1-2*(I2)+2*I3 ;
15429         S2++;
15430         J3 = I1-(I2)-(I3) ;
15431         S1++;
15432       }
15433     }
15434     for (I2=ceild(8*N1+19,26);I2<=N1;I2++) {
15435       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15436         J3 = I1-(I2)-(I3) ;
15437         S1++;
15438       }
15439     }
15440   }
15442 if (N1 >= 21) {
15443   if ((18*N1-5)%13 == 0) {
15444     I1 = (18*N1-5)/13 ;
15445     for (I2=1;I2<=floord(5*N1-18,26);I2++) {
15446       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15447         J3 = -I1-2*(I2)+2*I3 ;
15448         S2++;
15449       }
15450     }
15451     for (I2=ceild(5*N1-5,26);I2<=floord(18*N1-18,91);I2++) {
15452       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15453         J3 = -I1-2*(I2)+2*I3 ;
15454         S2++;
15455       }
15456       for (I3=I1-2*I2;I3<=N1;I3++) {
15457         J3 = I1-(I2)-(I3) ;
15458         S1++;
15459         J3 = -I1-2*(I2)+2*I3 ;
15460         S2++;
15461       }
15462     }
15463     if ((18*N1-5)%91 == 0) {
15464       I2 = (18*N1-5)/91 ;
15465       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
15466         J3 = -I1-2*(I2)+2*I3 ;
15467         S2++;
15468       }
15469       if (5*I1%7 == 0) {
15470         I3 = 5*I1/7 ;
15471         J1 = -2*I1+3*I3 ;
15472         if ((2*I1+J1)%3 == 0) {
15473           J2 = (2*I1+J1)/3 ;
15474           J3 = 3*I1-4*J2 ;
15475           S1++;
15476           S2++;
15477         }
15478       }
15479       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
15480         J3 = I1-(I2)-(I3) ;
15481         S1++;
15482         J3 = -I1-2*(I2)+2*I3 ;
15483         S2++;
15484       }
15485     }
15486     for (I2=ceild(18*N1+8,91);I2<=floord(18*N1-31,78);I2++) {
15487       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15488         J3 = -I1-2*(I2)+2*I3 ;
15489         S2++;
15490       }
15491       for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
15492         J3 = -I1-2*(I2)+2*I3 ;
15493         S2++;
15494         J3 = I1-(I2)-(I3) ;
15495         S1++;
15496       }
15497       if ((2*I1+I2)%3 == 0) {
15498         I3 = (2*I1+I2)/3 ;
15499         J1 = -2*I1+3*I3 ;
15500         if ((2*I1+J1)%3 == 0) {
15501           J2 = (2*I1+J1)/3 ;
15502           J3 = 3*I1-4*J2 ;
15503           S1++;
15504           S2++;
15505         }
15506       }
15507       for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15508         J3 = I1-(I2)-(I3) ;
15509         S1++;
15510         J3 = -I1-2*(I2)+2*I3 ;
15511         S2++;
15512       }
15513     }
15514     if ((3*N1-3)%13 == 0) {
15515       I2 = (3*N1-3)/13 ;
15516       for (I3=4*I2+1;I3<=floord(13*I2+1,3);I3++) {
15517         J3 = -I1-2*(I2)+2*I3 ;
15518         S2++;
15519         J3 = I1-(I2)-(I3) ;
15520         S1++;
15521       }
15522       if ((13*I1-1)%18 == 0) {
15523         I3 = (13*I1-1)/18 ;
15524         J1 = -2*I1+3*I3 ;
15525         if ((2*I1+J1)%3 == 0) {
15526           J2 = (2*I1+J1)/3 ;
15527           J3 = 3*I1-4*J2 ;
15528           S1++;
15529           S2++;
15530         }
15531       }
15532       for (I3=ceild(13*I2+3,3);I3<=N1;I3++) {
15533         J3 = I1-(I2)-(I3) ;
15534         S1++;
15535         J3 = -I1-2*(I2)+2*I3 ;
15536         S2++;
15537       }
15538     }
15539     if ((3*N1+10)%13 == 0) {
15540       I2 = (3*N1+10)/13 ;
15541       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*I2+3*N1-2,4);I3++) {
15542         J3 = I1-(I2)-(I3) ;
15543         S1++;
15544       }
15545       for (I3=ceild(3*I2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
15546         J3 = -I1-2*(I2)+2*I3 ;
15547         S2++;
15548         J3 = I1-(I2)-(I3) ;
15549         S1++;
15550       }
15551       J1 = -2*I1+3*N1 ;
15552       if ((2*I1+J1)%3 == 0) {
15553         J2 = (2*I1+J1)/3 ;
15554         J3 = 3*I1-4*J2 ;
15555         S1++;
15556         S2++;
15557       }
15558     }
15559     for (I2=ceild(3*N1+23,13);I2<=floord(8*N1+5,26);I2++) {
15560       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15561         J3 = I1-(I2)-(I3) ;
15562         S1++;
15563       }
15564       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
15565         J3 = -I1-2*(I2)+2*I3 ;
15566         S2++;
15567         J3 = I1-(I2)-(I3) ;
15568         S1++;
15569       }
15570     }
15571     for (I2=ceild(4*N1+9,13);I2<=N1;I2++) {
15572       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15573         J3 = I1-(I2)-(I3) ;
15574         S1++;
15575       }
15576     }
15577   }
15579 for (I1=max(ceild(18*N1-4,13),ceild(4*N1+2,3));I1<=min(floord(21*N1-8,15),floord(18*N1-1,13));I1++) {
15580   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
15581     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15582       J3 = -I1-2*(I2)+2*I3 ;
15583       S2++;
15584     }
15585   }
15586   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,7);I2++) {
15587     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15588       J3 = -I1-2*(I2)+2*I3 ;
15589       S2++;
15590     }
15591     for (I3=I1-2*I2;I3<=N1;I3++) {
15592       J3 = I1-(I2)-(I3) ;
15593       S1++;
15594       J3 = -I1-2*(I2)+2*I3 ;
15595       S2++;
15596     }
15597   }
15598   if (I1%7 == 0) {
15599     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
15600       J3 = -I1-2*(I2)+2*I3 ;
15601       S2++;
15602     }
15603     if (5*I1%7 == 0) {
15604       I3 = 5*I1/7 ;
15605       J1 = -2*I1+3*I3 ;
15606       if ((2*I1+J1)%3 == 0) {
15607         J2 = (2*I1+J1)/3 ;
15608         J3 = 3*I1-4*J2 ;
15609         S1++;
15610         S2++;
15611       }
15612     }
15613     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
15614       J3 = I1-(I2)-(I3) ;
15615       S1++;
15616       J3 = -I1-2*(I2)+2*I3 ;
15617       S2++;
15618     }
15619   }
15620   for (I2=ceild(I1+1,7);I2<=-2*I1+3*N1-1;I2++) {
15621     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15622       J3 = -I1-2*(I2)+2*I3 ;
15623       S2++;
15624     }
15625     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
15626       J3 = -I1-2*(I2)+2*I3 ;
15627       S2++;
15628       J3 = I1-(I2)-(I3) ;
15629       S1++;
15630     }
15631     if ((2*I1+I2)%3 == 0) {
15632       I3 = (2*I1+I2)/3 ;
15633       J1 = -2*I1+3*I3 ;
15634       if ((2*I1+J1)%3 == 0) {
15635         J2 = (2*I1+J1)/3 ;
15636         J3 = 3*I1-4*J2 ;
15637         S1++;
15638         S2++;
15639       }
15640     }
15641     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15642       J3 = I1-(I2)-(I3) ;
15643       S1++;
15644       J3 = -I1-2*(I2)+2*I3 ;
15645       S2++;
15646     }
15647   }
15648   I2 = -2*I1+3*N1 ;
15649   for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*I2+3*N1-2,4);I3++) {
15650     J3 = I1-(I2)-(I3) ;
15651     S1++;
15652   }
15653   for (I3=ceild(3*I2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
15654     J3 = -I1-2*(I2)+2*I3 ;
15655     S2++;
15656     J3 = I1-(I2)-(I3) ;
15657     S1++;
15658   }
15659   J1 = -2*I1+3*N1 ;
15660   if ((2*I1+J1)%3 == 0) {
15661     J2 = (2*I1+J1)/3 ;
15662     J3 = 3*I1-4*J2 ;
15663     S1++;
15664     S2++;
15665   }
15666   for (I2=-2*I1+3*N1+1;I2<=floord(-I1+2*N1,2);I2++) {
15667     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15668       J3 = I1-(I2)-(I3) ;
15669       S1++;
15670     }
15671     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
15672       J3 = -I1-2*(I2)+2*I3 ;
15673       S2++;
15674       J3 = I1-(I2)-(I3) ;
15675       S1++;
15676     }
15677   }
15678   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
15679     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15680       J3 = I1-(I2)-(I3) ;
15681       S1++;
15682     }
15683   }
15685 for (I1=ceild(18*N1,13);I1<=min(floord(21*N1-8,15),floord(18*N1+1,13));I1++) {
15686   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
15687     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15688       J3 = -I1-2*(I2)+2*I3 ;
15689       S2++;
15690     }
15691   }
15692   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,7);I2++) {
15693     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15694       J3 = -I1-2*(I2)+2*I3 ;
15695       S2++;
15696     }
15697     for (I3=I1-2*I2;I3<=N1;I3++) {
15698       J3 = I1-(I2)-(I3) ;
15699       S1++;
15700       J3 = -I1-2*(I2)+2*I3 ;
15701       S2++;
15702     }
15703   }
15704   if (I1%7 == 0) {
15705     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
15706       J3 = -I1-2*(I2)+2*I3 ;
15707       S2++;
15708     }
15709     if (5*I1%7 == 0) {
15710       I3 = 5*I1/7 ;
15711       J1 = -2*I1+3*I3 ;
15712       if ((2*I1+J1)%3 == 0) {
15713         J2 = (2*I1+J1)/3 ;
15714         J3 = 3*I1-4*J2 ;
15715         S1++;
15716         S2++;
15717       }
15718     }
15719     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
15720       J3 = I1-(I2)-(I3) ;
15721       S1++;
15722       J3 = -I1-2*(I2)+2*I3 ;
15723       S2++;
15724     }
15725   }
15726   for (I2=ceild(I1+1,7);I2<=-2*I1+3*N1-1;I2++) {
15727     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15728       J3 = -I1-2*(I2)+2*I3 ;
15729       S2++;
15730     }
15731     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
15732       J3 = -I1-2*(I2)+2*I3 ;
15733       S2++;
15734       J3 = I1-(I2)-(I3) ;
15735       S1++;
15736     }
15737     if ((2*I1+I2)%3 == 0) {
15738       I3 = (2*I1+I2)/3 ;
15739       J1 = -2*I1+3*I3 ;
15740       if ((2*I1+J1)%3 == 0) {
15741         J2 = (2*I1+J1)/3 ;
15742         J3 = 3*I1-4*J2 ;
15743         S1++;
15744         S2++;
15745       }
15746     }
15747     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15748       J3 = I1-(I2)-(I3) ;
15749       S1++;
15750       J3 = -I1-2*(I2)+2*I3 ;
15751       S2++;
15752     }
15753   }
15754   I2 = -2*I1+3*N1 ;
15755   for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
15756     J3 = -I1-2*(I2)+2*I3 ;
15757     S2++;
15758     J3 = I1-(I2)-(I3) ;
15759     S1++;
15760   }
15761   J1 = -2*I1+3*N1 ;
15762   if ((2*I1+J1)%3 == 0) {
15763     J2 = (2*I1+J1)/3 ;
15764     J3 = 3*I1-4*J2 ;
15765     S1++;
15766     S2++;
15767   }
15768   for (I2=-2*I1+3*N1+1;I2<=floord(-I1+2*N1,2);I2++) {
15769     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15770       J3 = I1-(I2)-(I3) ;
15771       S1++;
15772     }
15773     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
15774       J3 = -I1-2*(I2)+2*I3 ;
15775       S2++;
15776       J3 = I1-(I2)-(I3) ;
15777       S1++;
15778     }
15779   }
15780   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
15781     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15782       J3 = I1-(I2)-(I3) ;
15783       S1++;
15784     }
15785   }
15787 if ((N1 >= 17) && (N1 <= 25)) {
15788   if ((21*N1-7)%15 == 0) {
15789     I1 = (21*N1-7)/15 ;
15790     for (I2=1;I2<=floord(3*N1-11,15);I2++) {
15791       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15792         J3 = -I1-2*(I2)+2*I3 ;
15793         S2++;
15794       }
15795     }
15796     for (I2=ceild(6*N1-7,30);I2<=floord(21*N1-22,105);I2++) {
15797       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15798         J3 = -I1-2*(I2)+2*I3 ;
15799         S2++;
15800       }
15801       for (I3=I1-2*I2;I3<=N1;I3++) {
15802         J3 = I1-(I2)-(I3) ;
15803         S1++;
15804         J3 = -I1-2*(I2)+2*I3 ;
15805         S2++;
15806       }
15807     }
15808     if ((3*N1-1)%15 == 0) {
15809       I2 = (3*N1-1)/15 ;
15810       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
15811         J3 = -I1-2*(I2)+2*I3 ;
15812         S2++;
15813       }
15814       if (5*I1%7 == 0) {
15815         I3 = 5*I1/7 ;
15816         J1 = -2*I1+3*I3 ;
15817         if ((2*I1+J1)%3 == 0) {
15818           J2 = (2*I1+J1)/3 ;
15819           J3 = 3*I1-4*J2 ;
15820           S1++;
15821           S2++;
15822         }
15823       }
15824       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
15825         J3 = I1-(I2)-(I3) ;
15826         S1++;
15827         J3 = -I1-2*(I2)+2*I3 ;
15828         S2++;
15829       }
15830     }
15831     if ((3*N1+14)%15 == 0) {
15832       I2 = (3*N1+14)/15 ;
15833       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*I2+3*N1-2,4);I3++) {
15834         J3 = I1-(I2)-(I3) ;
15835         S1++;
15836       }
15837       for (I3=ceild(3*I2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
15838         J3 = -I1-2*(I2)+2*I3 ;
15839         S2++;
15840         J3 = I1-(I2)-(I3) ;
15841         S1++;
15842       }
15843       J1 = -2*I1+3*N1 ;
15844       if ((2*I1+J1)%3 == 0) {
15845         J2 = (2*I1+J1)/3 ;
15846         J3 = 3*I1-4*J2 ;
15847         S1++;
15848         S2++;
15849       }
15850     }
15851     for (I2=ceild(3*N1+29,15);I2<=floord(9*N1+7,30);I2++) {
15852       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15853         J3 = I1-(I2)-(I3) ;
15854         S1++;
15855       }
15856       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
15857         J3 = -I1-2*(I2)+2*I3 ;
15858         S2++;
15859         J3 = I1-(I2)-(I3) ;
15860         S1++;
15861       }
15862     }
15863     for (I2=ceild(9*N1+22,30);I2<=N1;I2++) {
15864       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15865         J3 = I1-(I2)-(I3) ;
15866         S1++;
15867       }
15868     }
15869   }
15871 for (I1=ceild(18*N1+2,13);I1<=min(floord(21*N1-8,15),floord(18*N1+5,13));I1++) {
15872   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
15873     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15874       J3 = -I1-2*(I2)+2*I3 ;
15875       S2++;
15876     }
15877   }
15878   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,7);I2++) {
15879     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15880       J3 = -I1-2*(I2)+2*I3 ;
15881       S2++;
15882     }
15883     for (I3=I1-2*I2;I3<=N1;I3++) {
15884       J3 = I1-(I2)-(I3) ;
15885       S1++;
15886       J3 = -I1-2*(I2)+2*I3 ;
15887       S2++;
15888     }
15889   }
15890   if (I1%7 == 0) {
15891     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
15892       J3 = -I1-2*(I2)+2*I3 ;
15893       S2++;
15894     }
15895     if (5*I1%7 == 0) {
15896       I3 = 5*I1/7 ;
15897       J1 = -2*I1+3*I3 ;
15898       if ((2*I1+J1)%3 == 0) {
15899         J2 = (2*I1+J1)/3 ;
15900         J3 = 3*I1-4*J2 ;
15901         S1++;
15902         S2++;
15903       }
15904     }
15905     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
15906       J3 = I1-(I2)-(I3) ;
15907       S1++;
15908       J3 = -I1-2*(I2)+2*I3 ;
15909       S2++;
15910     }
15911   }
15912   for (I2=ceild(I1+1,7);I2<=-2*I1+3*N1-1;I2++) {
15913     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15914       J3 = -I1-2*(I2)+2*I3 ;
15915       S2++;
15916     }
15917     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
15918       J3 = -I1-2*(I2)+2*I3 ;
15919       S2++;
15920       J3 = I1-(I2)-(I3) ;
15921       S1++;
15922     }
15923     if ((2*I1+I2)%3 == 0) {
15924       I3 = (2*I1+I2)/3 ;
15925       J1 = -2*I1+3*I3 ;
15926       if ((2*I1+J1)%3 == 0) {
15927         J2 = (2*I1+J1)/3 ;
15928         J3 = 3*I1-4*J2 ;
15929         S1++;
15930         S2++;
15931       }
15932     }
15933     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
15934       J3 = I1-(I2)-(I3) ;
15935       S1++;
15936       J3 = -I1-2*(I2)+2*I3 ;
15937       S2++;
15938     }
15939   }
15940   I2 = -2*I1+3*N1 ;
15941   for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
15942     J3 = -I1-2*(I2)+2*I3 ;
15943     S2++;
15944   }
15945   for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
15946     J3 = -I1-2*(I2)+2*I3 ;
15947     S2++;
15948     J3 = I1-(I2)-(I3) ;
15949     S1++;
15950   }
15951   J1 = -2*I1+3*N1 ;
15952   if ((2*I1+J1)%3 == 0) {
15953     J2 = (2*I1+J1)/3 ;
15954     J3 = 3*I1-4*J2 ;
15955     S1++;
15956     S2++;
15957   }
15958   for (I2=-2*I1+3*N1+1;I2<=floord(-I1+2*N1,2);I2++) {
15959     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
15960       J3 = I1-(I2)-(I3) ;
15961       S1++;
15962     }
15963     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
15964       J3 = -I1-2*(I2)+2*I3 ;
15965       S2++;
15966       J3 = I1-(I2)-(I3) ;
15967       S1++;
15968     }
15969   }
15970   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
15971     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
15972       J3 = I1-(I2)-(I3) ;
15973       S1++;
15974     }
15975   }
15977 if ((N1 <= 35) && (N1 >= 31)) {
15978   if ((21*N1-7)%15 == 0) {
15979     I1 = (21*N1-7)/15 ;
15980     for (I2=1;I2<=floord(3*N1-11,15);I2++) {
15981       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
15982         J3 = -I1-2*(I2)+2*I3 ;
15983         S2++;
15984       }
15985     }
15986     for (I2=ceild(6*N1-7,30);I2<=floord(21*N1-22,105);I2++) {
15987       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
15988         J3 = -I1-2*(I2)+2*I3 ;
15989         S2++;
15990       }
15991       for (I3=I1-2*I2;I3<=N1;I3++) {
15992         J3 = I1-(I2)-(I3) ;
15993         S1++;
15994         J3 = -I1-2*(I2)+2*I3 ;
15995         S2++;
15996       }
15997     }
15998     if ((3*N1-1)%15 == 0) {
15999       I2 = (3*N1-1)/15 ;
16000       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
16001         J3 = -I1-2*(I2)+2*I3 ;
16002         S2++;
16003       }
16004       if (5*I1%7 == 0) {
16005         I3 = 5*I1/7 ;
16006         J1 = -2*I1+3*I3 ;
16007         if ((2*I1+J1)%3 == 0) {
16008           J2 = (2*I1+J1)/3 ;
16009           J3 = 3*I1-4*J2 ;
16010           S1++;
16011           S2++;
16012         }
16013       }
16014       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
16015         J3 = I1-(I2)-(I3) ;
16016         S1++;
16017         J3 = -I1-2*(I2)+2*I3 ;
16018         S2++;
16019       }
16020     }
16021     if ((3*N1+14)%15 == 0) {
16022       I2 = (3*N1+14)/15 ;
16023       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16024         J3 = -I1-2*(I2)+2*I3 ;
16025         S2++;
16026         J3 = I1-(I2)-(I3) ;
16027         S1++;
16028       }
16029       J1 = -2*I1+3*N1 ;
16030       if ((2*I1+J1)%3 == 0) {
16031         J2 = (2*I1+J1)/3 ;
16032         J3 = 3*I1-4*J2 ;
16033         S1++;
16034         S2++;
16035       }
16036     }
16037     for (I2=ceild(3*N1+29,15);I2<=floord(9*N1+7,30);I2++) {
16038       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16039         J3 = I1-(I2)-(I3) ;
16040         S1++;
16041       }
16042       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16043         J3 = -I1-2*(I2)+2*I3 ;
16044         S2++;
16045         J3 = I1-(I2)-(I3) ;
16046         S1++;
16047       }
16048     }
16049     for (I2=ceild(9*N1+22,30);I2<=N1;I2++) {
16050       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16051         J3 = I1-(I2)-(I3) ;
16052         S1++;
16053       }
16054     }
16055   }
16057 if ((N1 >= 16) && (N1 <= 21)) {
16058   if ((7*N1-2)%5 == 0) {
16059     I1 = (7*N1-2)/5 ;
16060     for (I2=1;I2<=floord(2*N1-7,10);I2++) {
16061       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16062         J3 = -I1-2*(I2)+2*I3 ;
16063         S2++;
16064       }
16065     }
16066     if ((N1-1)%5 == 0) {
16067       I2 = (N1-1)/5 ;
16068       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16069         J3 = -I1-2*(I2)+2*I3 ;
16070         S2++;
16071       }
16072       for (I3=I1-2*I2;I3<=N1;I3++) {
16073         J3 = I1-(I2)-(I3) ;
16074         S1++;
16075         J3 = -I1-2*(I2)+2*I3 ;
16076         S2++;
16077       }
16078     }
16079     if ((N1+4)%5 == 0) {
16080       I2 = (N1+4)/5 ;
16081       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*I2+3*N1-2,4);I3++) {
16082         J3 = I1-(I2)-(I3) ;
16083         S1++;
16084       }
16085       for (I3=ceild(3*I2+3*N1,4);I3<=floord(3*N1-1,3);I3++) {
16086         J3 = -I1-2*(I2)+2*I3 ;
16087         S2++;
16088         J3 = I1-(I2)-(I3) ;
16089         S1++;
16090       }
16091       J1 = -2*I1+3*N1 ;
16092       if ((2*I1+J1)%3 == 0) {
16093         J2 = (2*I1+J1)/3 ;
16094         J3 = 3*I1-4*J2 ;
16095         S1++;
16096         S2++;
16097       }
16098     }
16099     for (I2=ceild(N1+9,5);I2<=floord(3*N1+2,10);I2++) {
16100       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16101         J3 = I1-(I2)-(I3) ;
16102         S1++;
16103       }
16104       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16105         J3 = -I1-2*(I2)+2*I3 ;
16106         S2++;
16107         J3 = I1-(I2)-(I3) ;
16108         S1++;
16109       }
16110     }
16111     for (I2=ceild(3*N1+7,10);I2<=N1;I2++) {
16112       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16113         J3 = I1-(I2)-(I3) ;
16114         S1++;
16115       }
16116     }
16117   }
16119 for (I1=ceild(18*N1+6,13);I1<=min(floord(21*N1-8,15),floord(18*N1+7,13));I1++) {
16120   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
16121     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16122       J3 = -I1-2*(I2)+2*I3 ;
16123       S2++;
16124     }
16125   }
16126   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,7);I2++) {
16127     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16128       J3 = -I1-2*(I2)+2*I3 ;
16129       S2++;
16130     }
16131     for (I3=I1-2*I2;I3<=N1;I3++) {
16132       J3 = I1-(I2)-(I3) ;
16133       S1++;
16134       J3 = -I1-2*(I2)+2*I3 ;
16135       S2++;
16136     }
16137   }
16138   if (I1%7 == 0) {
16139     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
16140       J3 = -I1-2*(I2)+2*I3 ;
16141       S2++;
16142     }
16143     if (5*I1%7 == 0) {
16144       I3 = 5*I1/7 ;
16145       J1 = -2*I1+3*I3 ;
16146       if ((2*I1+J1)%3 == 0) {
16147         J2 = (2*I1+J1)/3 ;
16148         J3 = 3*I1-4*J2 ;
16149         S1++;
16150         S2++;
16151       }
16152     }
16153     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
16154       J3 = I1-(I2)-(I3) ;
16155       S1++;
16156       J3 = -I1-2*(I2)+2*I3 ;
16157       S2++;
16158     }
16159   }
16160   for (I2=ceild(I1+1,7);I2<=-2*I1+3*N1-1;I2++) {
16161     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16162       J3 = -I1-2*(I2)+2*I3 ;
16163       S2++;
16164     }
16165     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
16166       J3 = -I1-2*(I2)+2*I3 ;
16167       S2++;
16168       J3 = I1-(I2)-(I3) ;
16169       S1++;
16170     }
16171     if ((2*I1+I2)%3 == 0) {
16172       I3 = (2*I1+I2)/3 ;
16173       J1 = -2*I1+3*I3 ;
16174       if ((2*I1+J1)%3 == 0) {
16175         J2 = (2*I1+J1)/3 ;
16176         J3 = 3*I1-4*J2 ;
16177         S1++;
16178         S2++;
16179       }
16180     }
16181     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
16182       J3 = I1-(I2)-(I3) ;
16183       S1++;
16184       J3 = -I1-2*(I2)+2*I3 ;
16185       S2++;
16186     }
16187   }
16188   I2 = -2*I1+3*N1 ;
16189   for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16190     J3 = -I1-2*(I2)+2*I3 ;
16191     S2++;
16192   }
16193   for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16194     J3 = -I1-2*(I2)+2*I3 ;
16195     S2++;
16196     J3 = I1-(I2)-(I3) ;
16197     S1++;
16198   }
16199   J1 = -2*I1+3*N1 ;
16200   if ((2*I1+J1)%3 == 0) {
16201     J2 = (2*I1+J1)/3 ;
16202     J3 = 3*I1-4*J2 ;
16203     S1++;
16204     S2++;
16205   }
16206   for (I2=-2*I1+3*N1+1;I2<=floord(I1,6);I2++) {
16207     for (I3=I1-2*I2;I3<=N1;I3++) {
16208       J3 = -I1-2*(I2)+2*I3 ;
16209       S2++;
16210       J3 = I1-(I2)-(I3) ;
16211       S1++;
16212     }
16213   }
16214   for (I2=ceild(I1+1,6);I2<=floord(-I1+2*N1,2);I2++) {
16215     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16216       J3 = I1-(I2)-(I3) ;
16217       S1++;
16218     }
16219     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16220       J3 = -I1-2*(I2)+2*I3 ;
16221       S2++;
16222       J3 = I1-(I2)-(I3) ;
16223       S1++;
16224     }
16225   }
16226   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
16227     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16228       J3 = I1-(I2)-(I3) ;
16229       S1++;
16230     }
16231   }
16233 if ((N1 <= 55) && (N1 >= 41)) {
16234   if ((21*N1-7)%15 == 0) {
16235     I1 = (21*N1-7)/15 ;
16236     for (I2=1;I2<=floord(3*N1-11,15);I2++) {
16237       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16238         J3 = -I1-2*(I2)+2*I3 ;
16239         S2++;
16240       }
16241     }
16242     for (I2=ceild(6*N1-7,30);I2<=floord(21*N1-22,105);I2++) {
16243       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16244         J3 = -I1-2*(I2)+2*I3 ;
16245         S2++;
16246       }
16247       for (I3=I1-2*I2;I3<=N1;I3++) {
16248         J3 = I1-(I2)-(I3) ;
16249         S1++;
16250         J3 = -I1-2*(I2)+2*I3 ;
16251         S2++;
16252       }
16253     }
16254     if ((3*N1-1)%15 == 0) {
16255       I2 = (3*N1-1)/15 ;
16256       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
16257         J3 = -I1-2*(I2)+2*I3 ;
16258         S2++;
16259       }
16260       if (5*I1%7 == 0) {
16261         I3 = 5*I1/7 ;
16262         J1 = -2*I1+3*I3 ;
16263         if ((2*I1+J1)%3 == 0) {
16264           J2 = (2*I1+J1)/3 ;
16265           J3 = 3*I1-4*J2 ;
16266           S1++;
16267           S2++;
16268         }
16269       }
16270       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
16271         J3 = I1-(I2)-(I3) ;
16272         S1++;
16273         J3 = -I1-2*(I2)+2*I3 ;
16274         S2++;
16275       }
16276     }
16277     if ((3*N1+14)%15 == 0) {
16278       I2 = (3*N1+14)/15 ;
16279       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16280         J3 = -I1-2*(I2)+2*I3 ;
16281         S2++;
16282       }
16283       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16284         J3 = -I1-2*(I2)+2*I3 ;
16285         S2++;
16286         J3 = I1-(I2)-(I3) ;
16287         S1++;
16288       }
16289       J1 = -2*I1+3*N1 ;
16290       if ((2*I1+J1)%3 == 0) {
16291         J2 = (2*I1+J1)/3 ;
16292         J3 = 3*I1-4*J2 ;
16293         S1++;
16294         S2++;
16295       }
16296     }
16297     for (I2=ceild(3*N1+29,15);I2<=floord(9*N1+7,30);I2++) {
16298       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16299         J3 = I1-(I2)-(I3) ;
16300         S1++;
16301       }
16302       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16303         J3 = -I1-2*(I2)+2*I3 ;
16304         S2++;
16305         J3 = I1-(I2)-(I3) ;
16306         S1++;
16307       }
16308     }
16309     for (I2=ceild(9*N1+22,30);I2<=N1;I2++) {
16310       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16311         J3 = I1-(I2)-(I3) ;
16312         S1++;
16313       }
16314     }
16315   }
16317 if ((N1 <= 31) && (N1 >= 26)) {
16318   if ((7*N1-2)%5 == 0) {
16319     I1 = (7*N1-2)/5 ;
16320     for (I2=1;I2<=floord(2*N1-7,10);I2++) {
16321       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16322         J3 = -I1-2*(I2)+2*I3 ;
16323         S2++;
16324       }
16325     }
16326     if ((N1-1)%5 == 0) {
16327       I2 = (N1-1)/5 ;
16328       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16329         J3 = -I1-2*(I2)+2*I3 ;
16330         S2++;
16331       }
16332       for (I3=I1-2*I2;I3<=N1;I3++) {
16333         J3 = I1-(I2)-(I3) ;
16334         S1++;
16335         J3 = -I1-2*(I2)+2*I3 ;
16336         S2++;
16337       }
16338     }
16339     if ((N1+4)%5 == 0) {
16340       I2 = (N1+4)/5 ;
16341       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16342         J3 = -I1-2*(I2)+2*I3 ;
16343         S2++;
16344         J3 = I1-(I2)-(I3) ;
16345         S1++;
16346       }
16347       J1 = -2*I1+3*N1 ;
16348       if ((2*I1+J1)%3 == 0) {
16349         J2 = (2*I1+J1)/3 ;
16350         J3 = 3*I1-4*J2 ;
16351         S1++;
16352         S2++;
16353       }
16354     }
16355     for (I2=ceild(N1+9,5);I2<=floord(3*N1+2,10);I2++) {
16356       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16357         J3 = I1-(I2)-(I3) ;
16358         S1++;
16359       }
16360       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16361         J3 = -I1-2*(I2)+2*I3 ;
16362         S2++;
16363         J3 = I1-(I2)-(I3) ;
16364         S1++;
16365       }
16366     }
16367     for (I2=ceild(3*N1+7,10);I2<=N1;I2++) {
16368       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16369         J3 = I1-(I2)-(I3) ;
16370         S1++;
16371       }
16372     }
16373   }
16375 if ((N1 <= 18) && (N1 >= 13)) {
16376   if ((7*N1-1)%5 == 0) {
16377     I1 = (7*N1-1)/5 ;
16378     for (I2=1;I2<=floord(N1-3,5);I2++) {
16379       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16380         J3 = -I1-2*(I2)+2*I3 ;
16381         S2++;
16382       }
16383     }
16384     if ((N1+2)%5 == 0) {
16385       I2 = (N1+2)/5 ;
16386       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16387         J3 = -I1-2*(I2)+2*I3 ;
16388         S2++;
16389         J3 = I1-(I2)-(I3) ;
16390         S1++;
16391       }
16392       J1 = -2*I1+3*N1 ;
16393       if ((2*I1+J1)%3 == 0) {
16394         J2 = (2*I1+J1)/3 ;
16395         J3 = 3*I1-4*J2 ;
16396         S1++;
16397         S2++;
16398       }
16399     }
16400     for (I2=ceild(N1+7,5);I2<=floord(3*N1+1,10);I2++) {
16401       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16402         J3 = I1-(I2)-(I3) ;
16403         S1++;
16404       }
16405       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16406         J3 = -I1-2*(I2)+2*I3 ;
16407         S2++;
16408         J3 = I1-(I2)-(I3) ;
16409         S1++;
16410       }
16411     }
16412     for (I2=ceild(3*N1+6,10);I2<=N1;I2++) {
16413       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16414         J3 = I1-(I2)-(I3) ;
16415         S1++;
16416       }
16417     }
16418   }
16420 for (I1=ceild(18*N1+8,13);I1<=floord(21*N1-8,15);I1++) {
16421   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
16422     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16423       J3 = -I1-2*(I2)+2*I3 ;
16424       S2++;
16425     }
16426   }
16427   for (I2=ceild(I1-N1,2);I2<=floord(I1-1,7);I2++) {
16428     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16429       J3 = -I1-2*(I2)+2*I3 ;
16430       S2++;
16431     }
16432     for (I3=I1-2*I2;I3<=N1;I3++) {
16433       J3 = I1-(I2)-(I3) ;
16434       S1++;
16435       J3 = -I1-2*(I2)+2*I3 ;
16436       S2++;
16437     }
16438   }
16439   if (I1%7 == 0) {
16440     for (I3=ceild(9*I1/7,2);I3<=5*I1/7-1;I3++) {
16441       J3 = -I1-2*(I2)+2*I3 ;
16442       S2++;
16443     }
16444     if (5*I1%7 == 0) {
16445       I3 = 5*I1/7 ;
16446       J1 = -2*I1+3*I3 ;
16447       if ((2*I1+J1)%3 == 0) {
16448         J2 = (2*I1+J1)/3 ;
16449         J3 = 3*I1-4*J2 ;
16450         S1++;
16451         S2++;
16452       }
16453     }
16454     for (I3=ceild(15*I1/7+1,3);I3<=N1;I3++) {
16455       J3 = I1-(I2)-(I3) ;
16456       S1++;
16457       J3 = -I1-2*(I2)+2*I3 ;
16458       S2++;
16459     }
16460   }
16461   for (I2=ceild(I1+1,7);I2<=-2*I1+3*N1-1;I2++) {
16462     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16463       J3 = -I1-2*(I2)+2*I3 ;
16464       S2++;
16465     }
16466     for (I3=I1-2*I2;I3<=floord(2*I1+I2-1,3);I3++) {
16467       J3 = -I1-2*(I2)+2*I3 ;
16468       S2++;
16469       J3 = I1-(I2)-(I3) ;
16470       S1++;
16471     }
16472     if ((2*I1+I2)%3 == 0) {
16473       I3 = (2*I1+I2)/3 ;
16474       J1 = -2*I1+3*I3 ;
16475       if ((2*I1+J1)%3 == 0) {
16476         J2 = (2*I1+J1)/3 ;
16477         J3 = 3*I1-4*J2 ;
16478         S1++;
16479         S2++;
16480       }
16481     }
16482     for (I3=ceild(2*I1+I2+1,3);I3<=N1;I3++) {
16483       J3 = I1-(I2)-(I3) ;
16484       S1++;
16485       J3 = -I1-2*(I2)+2*I3 ;
16486       S2++;
16487     }
16488   }
16489   I2 = -2*I1+3*N1 ;
16490   for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16491     J3 = -I1-2*(I2)+2*I3 ;
16492     S2++;
16493   }
16494   for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16495     J3 = -I1-2*(I2)+2*I3 ;
16496     S2++;
16497     J3 = I1-(I2)-(I3) ;
16498     S1++;
16499   }
16500   J1 = -2*I1+3*N1 ;
16501   if ((2*I1+J1)%3 == 0) {
16502     J2 = (2*I1+J1)/3 ;
16503     J3 = 3*I1-4*J2 ;
16504     S1++;
16505     S2++;
16506   }
16507   for (I2=-2*I1+3*N1+1;I2<=floord(I1-2,6);I2++) {
16508     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16509       J3 = -I1-2*(I2)+2*I3 ;
16510       S2++;
16511     }
16512     for (I3=I1-2*I2;I3<=N1;I3++) {
16513       J3 = -I1-2*(I2)+2*I3 ;
16514       S2++;
16515       J3 = I1-(I2)-(I3) ;
16516       S1++;
16517     }
16518   }
16519   for (I2=ceild(I1-1,6);I2<=floord(I1,6);I2++) {
16520     for (I3=I1-2*I2;I3<=N1;I3++) {
16521       J3 = -I1-2*(I2)+2*I3 ;
16522       S2++;
16523       J3 = I1-(I2)-(I3) ;
16524       S1++;
16525     }
16526   }
16527   for (I2=ceild(I1+1,6);I2<=floord(-I1+2*N1,2);I2++) {
16528     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16529       J3 = I1-(I2)-(I3) ;
16530       S1++;
16531     }
16532     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16533       J3 = -I1-2*(I2)+2*I3 ;
16534       S2++;
16535       J3 = I1-(I2)-(I3) ;
16536       S1++;
16537     }
16538   }
16539   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
16540     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16541       J3 = I1-(I2)-(I3) ;
16542       S1++;
16543     }
16544   }
16546 if ((N1 >= 61) && (N1 <= 65)) {
16547   if ((21*N1-7)%15 == 0) {
16548     I1 = (21*N1-7)/15 ;
16549     for (I2=1;I2<=floord(3*N1-11,15);I2++) {
16550       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16551         J3 = -I1-2*(I2)+2*I3 ;
16552         S2++;
16553       }
16554     }
16555     for (I2=ceild(6*N1-7,30);I2<=floord(21*N1-22,105);I2++) {
16556       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16557         J3 = -I1-2*(I2)+2*I3 ;
16558         S2++;
16559       }
16560       for (I3=I1-2*I2;I3<=N1;I3++) {
16561         J3 = I1-(I2)-(I3) ;
16562         S1++;
16563         J3 = -I1-2*(I2)+2*I3 ;
16564         S2++;
16565       }
16566     }
16567     if ((3*N1-1)%15 == 0) {
16568       I2 = (3*N1-1)/15 ;
16569       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
16570         J3 = -I1-2*(I2)+2*I3 ;
16571         S2++;
16572       }
16573       if (5*I1%7 == 0) {
16574         I3 = 5*I1/7 ;
16575         J1 = -2*I1+3*I3 ;
16576         if ((2*I1+J1)%3 == 0) {
16577           J2 = (2*I1+J1)/3 ;
16578           J3 = 3*I1-4*J2 ;
16579           S1++;
16580           S2++;
16581         }
16582       }
16583       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
16584         J3 = I1-(I2)-(I3) ;
16585         S1++;
16586         J3 = -I1-2*(I2)+2*I3 ;
16587         S2++;
16588       }
16589     }
16590     if ((3*N1+14)%15 == 0) {
16591       I2 = (3*N1+14)/15 ;
16592       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16593         J3 = -I1-2*(I2)+2*I3 ;
16594         S2++;
16595       }
16596       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16597         J3 = -I1-2*(I2)+2*I3 ;
16598         S2++;
16599         J3 = I1-(I2)-(I3) ;
16600         S1++;
16601       }
16602       J1 = -2*I1+3*N1 ;
16603       if ((2*I1+J1)%3 == 0) {
16604         J2 = (2*I1+J1)/3 ;
16605         J3 = 3*I1-4*J2 ;
16606         S1++;
16607         S2++;
16608       }
16609     }
16610     for (I2=ceild(3*N1+29,15);I2<=floord(21*N1-7,90);I2++) {
16611       for (I3=I1-2*I2;I3<=N1;I3++) {
16612         J3 = -I1-2*(I2)+2*I3 ;
16613         S2++;
16614         J3 = I1-(I2)-(I3) ;
16615         S1++;
16616       }
16617     }
16618     for (I2=ceild(21*N1+8,90);I2<=floord(9*N1+7,30);I2++) {
16619       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16620         J3 = I1-(I2)-(I3) ;
16621         S1++;
16622       }
16623       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16624         J3 = -I1-2*(I2)+2*I3 ;
16625         S2++;
16626         J3 = I1-(I2)-(I3) ;
16627         S1++;
16628       }
16629     }
16630     for (I2=ceild(9*N1+22,30);I2<=N1;I2++) {
16631       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16632         J3 = I1-(I2)-(I3) ;
16633         S1++;
16634       }
16635     }
16636   }
16638 if ((N1 <= 51) && (N1 >= 36)) {
16639   if ((7*N1-2)%5 == 0) {
16640     I1 = (7*N1-2)/5 ;
16641     for (I2=1;I2<=floord(2*N1-7,10);I2++) {
16642       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16643         J3 = -I1-2*(I2)+2*I3 ;
16644         S2++;
16645       }
16646     }
16647     if ((N1-1)%5 == 0) {
16648       I2 = (N1-1)/5 ;
16649       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16650         J3 = -I1-2*(I2)+2*I3 ;
16651         S2++;
16652       }
16653       for (I3=I1-2*I2;I3<=N1;I3++) {
16654         J3 = I1-(I2)-(I3) ;
16655         S1++;
16656         J3 = -I1-2*(I2)+2*I3 ;
16657         S2++;
16658       }
16659     }
16660     if ((N1+4)%5 == 0) {
16661       I2 = (N1+4)/5 ;
16662       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16663         J3 = -I1-2*(I2)+2*I3 ;
16664         S2++;
16665       }
16666       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16667         J3 = -I1-2*(I2)+2*I3 ;
16668         S2++;
16669         J3 = I1-(I2)-(I3) ;
16670         S1++;
16671       }
16672       J1 = -2*I1+3*N1 ;
16673       if ((2*I1+J1)%3 == 0) {
16674         J2 = (2*I1+J1)/3 ;
16675         J3 = 3*I1-4*J2 ;
16676         S1++;
16677         S2++;
16678       }
16679     }
16680     for (I2=ceild(N1+9,5);I2<=floord(3*N1+2,10);I2++) {
16681       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16682         J3 = I1-(I2)-(I3) ;
16683         S1++;
16684       }
16685       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16686         J3 = -I1-2*(I2)+2*I3 ;
16687         S2++;
16688         J3 = I1-(I2)-(I3) ;
16689         S1++;
16690       }
16691     }
16692     for (I2=ceild(3*N1+7,10);I2<=N1;I2++) {
16693       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16694         J3 = I1-(I2)-(I3) ;
16695         S1++;
16696       }
16697     }
16698   }
16700 if (N1 >= 71) {
16701   if ((21*N1-7)%15 == 0) {
16702     I1 = (21*N1-7)/15 ;
16703     for (I2=1;I2<=floord(3*N1-11,15);I2++) {
16704       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16705         J3 = -I1-2*(I2)+2*I3 ;
16706         S2++;
16707       }
16708     }
16709     for (I2=ceild(6*N1-7,30);I2<=floord(21*N1-22,105);I2++) {
16710       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16711         J3 = -I1-2*(I2)+2*I3 ;
16712         S2++;
16713       }
16714       for (I3=I1-2*I2;I3<=N1;I3++) {
16715         J3 = I1-(I2)-(I3) ;
16716         S1++;
16717         J3 = -I1-2*(I2)+2*I3 ;
16718         S2++;
16719       }
16720     }
16721     if ((3*N1-1)%15 == 0) {
16722       I2 = (3*N1-1)/15 ;
16723       for (I3=ceild(9*I2,2);I3<=5*I2-1;I3++) {
16724         J3 = -I1-2*(I2)+2*I3 ;
16725         S2++;
16726       }
16727       if (5*I1%7 == 0) {
16728         I3 = 5*I1/7 ;
16729         J1 = -2*I1+3*I3 ;
16730         if ((2*I1+J1)%3 == 0) {
16731           J2 = (2*I1+J1)/3 ;
16732           J3 = 3*I1-4*J2 ;
16733           S1++;
16734           S2++;
16735         }
16736       }
16737       for (I3=ceild(15*I2+1,3);I3<=N1;I3++) {
16738         J3 = I1-(I2)-(I3) ;
16739         S1++;
16740         J3 = -I1-2*(I2)+2*I3 ;
16741         S2++;
16742       }
16743     }
16744     if ((3*N1+14)%15 == 0) {
16745       I2 = (3*N1+14)/15 ;
16746       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16747         J3 = -I1-2*(I2)+2*I3 ;
16748         S2++;
16749       }
16750       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16751         J3 = -I1-2*(I2)+2*I3 ;
16752         S2++;
16753         J3 = I1-(I2)-(I3) ;
16754         S1++;
16755       }
16756       J1 = -2*I1+3*N1 ;
16757       if ((2*I1+J1)%3 == 0) {
16758         J2 = (2*I1+J1)/3 ;
16759         J3 = 3*I1-4*J2 ;
16760         S1++;
16761         S2++;
16762       }
16763     }
16764     for (I2=ceild(3*N1+29,15);I2<=floord(21*N1-37,90);I2++) {
16765       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16766         J3 = -I1-2*(I2)+2*I3 ;
16767         S2++;
16768       }
16769       for (I3=I1-2*I2;I3<=N1;I3++) {
16770         J3 = -I1-2*(I2)+2*I3 ;
16771         S2++;
16772         J3 = I1-(I2)-(I3) ;
16773         S1++;
16774       }
16775     }
16776     for (I2=ceild(21*N1-22,90);I2<=floord(21*N1-7,90);I2++) {
16777       for (I3=I1-2*I2;I3<=N1;I3++) {
16778         J3 = -I1-2*(I2)+2*I3 ;
16779         S2++;
16780         J3 = I1-(I2)-(I3) ;
16781         S1++;
16782       }
16783     }
16784     for (I2=ceild(21*N1+8,90);I2<=floord(9*N1+7,30);I2++) {
16785       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16786         J3 = I1-(I2)-(I3) ;
16787         S1++;
16788       }
16789       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16790         J3 = -I1-2*(I2)+2*I3 ;
16791         S2++;
16792         J3 = I1-(I2)-(I3) ;
16793         S1++;
16794       }
16795     }
16796     for (I2=ceild(9*N1+22,30);I2<=N1;I2++) {
16797       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16798         J3 = I1-(I2)-(I3) ;
16799         S1++;
16800       }
16801     }
16802   }
16804 if ((N1 >= 56) && (N1 <= 61)) {
16805   if ((7*N1-2)%5 == 0) {
16806     I1 = (7*N1-2)/5 ;
16807     for (I2=1;I2<=floord(2*N1-7,10);I2++) {
16808       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16809         J3 = -I1-2*(I2)+2*I3 ;
16810         S2++;
16811       }
16812     }
16813     if ((N1-1)%5 == 0) {
16814       I2 = (N1-1)/5 ;
16815       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
16816         J3 = -I1-2*(I2)+2*I3 ;
16817         S2++;
16818       }
16819       for (I3=I1-2*I2;I3<=N1;I3++) {
16820         J3 = I1-(I2)-(I3) ;
16821         S1++;
16822         J3 = -I1-2*(I2)+2*I3 ;
16823         S2++;
16824       }
16825     }
16826     if ((N1+4)%5 == 0) {
16827       I2 = (N1+4)/5 ;
16828       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16829         J3 = -I1-2*(I2)+2*I3 ;
16830         S2++;
16831       }
16832       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16833         J3 = -I1-2*(I2)+2*I3 ;
16834         S2++;
16835         J3 = I1-(I2)-(I3) ;
16836         S1++;
16837       }
16838       J1 = -2*I1+3*N1 ;
16839       if ((2*I1+J1)%3 == 0) {
16840         J2 = (2*I1+J1)/3 ;
16841         J3 = 3*I1-4*J2 ;
16842         S1++;
16843         S2++;
16844       }
16845     }
16846     for (I2=ceild(N1+9,5);I2<=floord(7*N1-2,30);I2++) {
16847       for (I3=I1-2*I2;I3<=N1;I3++) {
16848         J3 = -I1-2*(I2)+2*I3 ;
16849         S2++;
16850         J3 = I1-(I2)-(I3) ;
16851         S1++;
16852       }
16853     }
16854     for (I2=ceild(7*N1+3,30);I2<=floord(3*N1+2,10);I2++) {
16855       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16856         J3 = I1-(I2)-(I3) ;
16857         S1++;
16858       }
16859       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16860         J3 = -I1-2*(I2)+2*I3 ;
16861         S2++;
16862         J3 = I1-(I2)-(I3) ;
16863         S1++;
16864       }
16865     }
16866     for (I2=ceild(3*N1+7,10);I2<=N1;I2++) {
16867       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16868         J3 = I1-(I2)-(I3) ;
16869         S1++;
16870       }
16871     }
16872   }
16874 if ((N1 >= 43) && (N1 <= 48)) {
16875   if ((7*N1-1)%5 == 0) {
16876     I1 = (7*N1-1)/5 ;
16877     for (I2=1;I2<=floord(N1-3,5);I2++) {
16878       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16879         J3 = -I1-2*(I2)+2*I3 ;
16880         S2++;
16881       }
16882     }
16883     if ((N1+2)%5 == 0) {
16884       I2 = (N1+2)/5 ;
16885       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16886         J3 = -I1-2*(I2)+2*I3 ;
16887         S2++;
16888       }
16889       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16890         J3 = -I1-2*(I2)+2*I3 ;
16891         S2++;
16892         J3 = I1-(I2)-(I3) ;
16893         S1++;
16894       }
16895       J1 = -2*I1+3*N1 ;
16896       if ((2*I1+J1)%3 == 0) {
16897         J2 = (2*I1+J1)/3 ;
16898         J3 = 3*I1-4*J2 ;
16899         S1++;
16900         S2++;
16901       }
16902     }
16903     for (I2=ceild(N1+7,5);I2<=floord(7*N1-1,30);I2++) {
16904       for (I3=I1-2*I2;I3<=N1;I3++) {
16905         J3 = -I1-2*(I2)+2*I3 ;
16906         S2++;
16907         J3 = I1-(I2)-(I3) ;
16908         S1++;
16909       }
16910     }
16911     for (I2=ceild(7*N1+4,30);I2<=floord(3*N1+1,10);I2++) {
16912       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16913         J3 = I1-(I2)-(I3) ;
16914         S1++;
16915       }
16916       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16917         J3 = -I1-2*(I2)+2*I3 ;
16918         S2++;
16919         J3 = I1-(I2)-(I3) ;
16920         S1++;
16921       }
16922     }
16923     for (I2=ceild(3*N1+6,10);I2<=N1;I2++) {
16924       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16925         J3 = I1-(I2)-(I3) ;
16926         S1++;
16927       }
16928     }
16929   }
16931 if ((N1 <= 38) && (N1 >= 23)) {
16932   if ((7*N1-1)%5 == 0) {
16933     I1 = (7*N1-1)/5 ;
16934     for (I2=1;I2<=floord(N1-3,5);I2++) {
16935       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16936         J3 = -I1-2*(I2)+2*I3 ;
16937         S2++;
16938       }
16939     }
16940     if ((N1+2)%5 == 0) {
16941       I2 = (N1+2)/5 ;
16942       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
16943         J3 = -I1-2*(I2)+2*I3 ;
16944         S2++;
16945       }
16946       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
16947         J3 = -I1-2*(I2)+2*I3 ;
16948         S2++;
16949         J3 = I1-(I2)-(I3) ;
16950         S1++;
16951       }
16952       J1 = -2*I1+3*N1 ;
16953       if ((2*I1+J1)%3 == 0) {
16954         J2 = (2*I1+J1)/3 ;
16955         J3 = 3*I1-4*J2 ;
16956         S1++;
16957         S2++;
16958       }
16959     }
16960     for (I2=ceild(N1+7,5);I2<=floord(3*N1+1,10);I2++) {
16961       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
16962         J3 = I1-(I2)-(I3) ;
16963         S1++;
16964       }
16965       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
16966         J3 = -I1-2*(I2)+2*I3 ;
16967         S2++;
16968         J3 = I1-(I2)-(I3) ;
16969         S1++;
16970       }
16971     }
16972     for (I2=ceild(3*N1+6,10);I2<=N1;I2++) {
16973       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
16974         J3 = I1-(I2)-(I3) ;
16975         S1++;
16976       }
16977     }
16978   }
16980 if ((N1 >= 30) && (N1 <= 35)) {
16981   if (7*N1%5 == 0) {
16982     I1 = 7*N1/5 ;
16983     for (I2=1;I2<=floord(2*N1-5,10);I2++) {
16984       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
16985         J3 = -I1-2*(I2)+2*I3 ;
16986         S2++;
16987       }
16988     }
16989     if (N1%5 == 0) {
16990       for (I3=ceild(9*N1,10);I3<=N1-1;I3++) {
16991         J3 = -I1-2*(I2)+2*I3 ;
16992         S2++;
16993       }
16994       J1 = -2*I1+3*N1 ;
16995       if ((2*I1+J1)%3 == 0) {
16996         J2 = (2*I1+J1)/3 ;
16997         J3 = 3*I1-4*J2 ;
16998         S1++;
16999         S2++;
17000       }
17001     }
17002     for (I2=ceild(N1+5,5);I2<=floord(7*N1,30);I2++) {
17003       for (I3=I1-2*I2;I3<=N1;I3++) {
17004         J3 = -I1-2*(I2)+2*I3 ;
17005         S2++;
17006         J3 = I1-(I2)-(I3) ;
17007         S1++;
17008       }
17009     }
17010     for (I2=ceild(7*N1+5,30);I2<=floord(3*N1,10);I2++) {
17011       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17012         J3 = I1-(I2)-(I3) ;
17013         S1++;
17014       }
17015       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17016         J3 = -I1-2*(I2)+2*I3 ;
17017         S2++;
17018         J3 = I1-(I2)-(I3) ;
17019         S1++;
17020       }
17021     }
17022     for (I2=ceild(3*N1+5,10);I2<=N1;I2++) {
17023       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17024         J3 = I1-(I2)-(I3) ;
17025         S1++;
17026       }
17027     }
17028   }
17030 if ((N1 <= 25) && (N1 >= 10)) {
17031   if (7*N1%5 == 0) {
17032     I1 = 7*N1/5 ;
17033     for (I2=1;I2<=floord(2*N1-5,10);I2++) {
17034       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17035         J3 = -I1-2*(I2)+2*I3 ;
17036         S2++;
17037       }
17038     }
17039     if (N1%5 == 0) {
17040       for (I3=ceild(9*N1,10);I3<=N1-1;I3++) {
17041         J3 = -I1-2*(I2)+2*I3 ;
17042         S2++;
17043       }
17044       J1 = -2*I1+3*N1 ;
17045       if ((2*I1+J1)%3 == 0) {
17046         J2 = (2*I1+J1)/3 ;
17047         J3 = 3*I1-4*J2 ;
17048         S1++;
17049         S2++;
17050       }
17051     }
17052     for (I2=ceild(N1+5,5);I2<=floord(3*N1,10);I2++) {
17053       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17054         J3 = I1-(I2)-(I3) ;
17055         S1++;
17056       }
17057       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17058         J3 = -I1-2*(I2)+2*I3 ;
17059         S2++;
17060         J3 = I1-(I2)-(I3) ;
17061         S1++;
17062       }
17063     }
17064     for (I2=ceild(3*N1+5,10);I2<=N1;I2++) {
17065       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17066         J3 = I1-(I2)-(I3) ;
17067         S1++;
17068       }
17069     }
17070   }
17072 if (N1 >= 66) {
17073   if ((7*N1-2)%5 == 0) {
17074     I1 = (7*N1-2)/5 ;
17075     for (I2=1;I2<=floord(2*N1-7,10);I2++) {
17076       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17077         J3 = -I1-2*(I2)+2*I3 ;
17078         S2++;
17079       }
17080     }
17081     if ((N1-1)%5 == 0) {
17082       I2 = (N1-1)/5 ;
17083       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
17084         J3 = -I1-2*(I2)+2*I3 ;
17085         S2++;
17086       }
17087       for (I3=I1-2*I2;I3<=N1;I3++) {
17088         J3 = I1-(I2)-(I3) ;
17089         S1++;
17090         J3 = -I1-2*(I2)+2*I3 ;
17091         S2++;
17092       }
17093     }
17094     if ((N1+4)%5 == 0) {
17095       I2 = (N1+4)/5 ;
17096       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
17097         J3 = -I1-2*(I2)+2*I3 ;
17098         S2++;
17099       }
17100       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
17101         J3 = -I1-2*(I2)+2*I3 ;
17102         S2++;
17103         J3 = I1-(I2)-(I3) ;
17104         S1++;
17105       }
17106       J1 = -2*I1+3*N1 ;
17107       if ((2*I1+J1)%3 == 0) {
17108         J2 = (2*I1+J1)/3 ;
17109         J3 = 3*I1-4*J2 ;
17110         S1++;
17111         S2++;
17112       }
17113     }
17114     for (I2=ceild(N1+9,5);I2<=floord(7*N1-12,30);I2++) {
17115       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
17116         J3 = -I1-2*(I2)+2*I3 ;
17117         S2++;
17118       }
17119       for (I3=I1-2*I2;I3<=N1;I3++) {
17120         J3 = -I1-2*(I2)+2*I3 ;
17121         S2++;
17122         J3 = I1-(I2)-(I3) ;
17123         S1++;
17124       }
17125     }
17126     for (I2=ceild(7*N1-7,30);I2<=floord(7*N1-2,30);I2++) {
17127       for (I3=I1-2*I2;I3<=N1;I3++) {
17128         J3 = -I1-2*(I2)+2*I3 ;
17129         S2++;
17130         J3 = I1-(I2)-(I3) ;
17131         S1++;
17132       }
17133     }
17134     for (I2=ceild(7*N1+3,30);I2<=floord(3*N1+2,10);I2++) {
17135       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17136         J3 = I1-(I2)-(I3) ;
17137         S1++;
17138       }
17139       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17140         J3 = -I1-2*(I2)+2*I3 ;
17141         S2++;
17142         J3 = I1-(I2)-(I3) ;
17143         S1++;
17144       }
17145     }
17146     for (I2=ceild(3*N1+7,10);I2<=N1;I2++) {
17147       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17148         J3 = I1-(I2)-(I3) ;
17149         S1++;
17150       }
17151     }
17152   }
17154 if (N1 >= 53) {
17155   if ((7*N1-1)%5 == 0) {
17156     I1 = (7*N1-1)/5 ;
17157     for (I2=1;I2<=floord(N1-3,5);I2++) {
17158       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17159         J3 = -I1-2*(I2)+2*I3 ;
17160         S2++;
17161       }
17162     }
17163     if ((N1+2)%5 == 0) {
17164       I2 = (N1+2)/5 ;
17165       for (I3=ceild(3*I2+3*N1,4);I3<=floord(-5*I2+3*N1-2,2);I3++) {
17166         J3 = -I1-2*(I2)+2*I3 ;
17167         S2++;
17168       }
17169       for (I3=ceild(-5*I2+3*N1,2);I3<=floord(3*N1-1,3);I3++) {
17170         J3 = -I1-2*(I2)+2*I3 ;
17171         S2++;
17172         J3 = I1-(I2)-(I3) ;
17173         S1++;
17174       }
17175       J1 = -2*I1+3*N1 ;
17176       if ((2*I1+J1)%3 == 0) {
17177         J2 = (2*I1+J1)/3 ;
17178         J3 = 3*I1-4*J2 ;
17179         S1++;
17180         S2++;
17181       }
17182     }
17183     for (I2=ceild(N1+7,5);I2<=floord(7*N1-11,30);I2++) {
17184       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
17185         J3 = -I1-2*(I2)+2*I3 ;
17186         S2++;
17187       }
17188       for (I3=I1-2*I2;I3<=N1;I3++) {
17189         J3 = -I1-2*(I2)+2*I3 ;
17190         S2++;
17191         J3 = I1-(I2)-(I3) ;
17192         S1++;
17193       }
17194     }
17195     for (I2=ceild(7*N1-6,30);I2<=floord(7*N1-1,30);I2++) {
17196       for (I3=I1-2*I2;I3<=N1;I3++) {
17197         J3 = -I1-2*(I2)+2*I3 ;
17198         S2++;
17199         J3 = I1-(I2)-(I3) ;
17200         S1++;
17201       }
17202     }
17203     for (I2=ceild(7*N1+4,30);I2<=floord(3*N1+1,10);I2++) {
17204       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17205         J3 = I1-(I2)-(I3) ;
17206         S1++;
17207       }
17208       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17209         J3 = -I1-2*(I2)+2*I3 ;
17210         S2++;
17211         J3 = I1-(I2)-(I3) ;
17212         S1++;
17213       }
17214     }
17215     for (I2=ceild(3*N1+6,10);I2<=N1;I2++) {
17216       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17217         J3 = I1-(I2)-(I3) ;
17218         S1++;
17219       }
17220     }
17221   }
17223 for (I1=max(ceild(7*N1+1,5),ceild(18*N1+6,13));I1<=min(floord(18*N1+7,13),floord(3*N1-2,2));I1++) {
17224   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
17225     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17226       J3 = -I1-2*(I2)+2*I3 ;
17227       S2++;
17228     }
17229   }
17230   for (I2=-2*I1+3*N1+1;I2<=floord(I1,6);I2++) {
17231     for (I3=I1-2*I2;I3<=N1;I3++) {
17232       J3 = -I1-2*(I2)+2*I3 ;
17233       S2++;
17234       J3 = I1-(I2)-(I3) ;
17235       S1++;
17236     }
17237   }
17238   for (I2=ceild(I1+1,6);I2<=floord(-I1+2*N1,2);I2++) {
17239     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17240       J3 = I1-(I2)-(I3) ;
17241       S1++;
17242     }
17243     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17244       J3 = -I1-2*(I2)+2*I3 ;
17245       S2++;
17246       J3 = I1-(I2)-(I3) ;
17247       S1++;
17248     }
17249   }
17250   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
17251     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17252       J3 = I1-(I2)-(I3) ;
17253       S1++;
17254     }
17255   }
17257 if (N1 == 12) {
17258   for (I2=1;I2<=2;I2++) {
17259     for (I3=ceild(17+2*I2,2);I3<=min(N1,floord(2*17+3*I2,3));I3++) {
17260       J3 = -(17)-2*(I2)+2*I3 ;
17261       S2++;
17262     }
17263   }
17264   for (I3=17-2*(3);I3<=floord(17+2*3-1,2);I3++) {
17265     J3 = 17-(I2)-(I3) ;
17266     S1++;
17267   }
17268   for (I3=ceild(17+2*3,2);I3<=N1;I3++) {
17269     J3 = -(17)-2*(I2)+2*I3 ;
17270     S2++;
17271     J3 = 17-(I2)-(I3) ;
17272     S1++;
17273   }
17274   for (I2=4;I2<=12;I2++) {
17275     for (I3=max(max(ceild(17-I2,2),17-2*I2),1);I3<=min(17-I2,N1);I3++) {
17276       J3 = 17-(I2)-(I3) ;
17277       S1++;
17278     }
17279   }
17281 if (N1 >= 40) {
17282   if (7*N1%5 == 0) {
17283     I1 = 7*N1/5 ;
17284     for (I2=1;I2<=floord(2*N1-5,10);I2++) {
17285       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17286         J3 = -I1-2*(I2)+2*I3 ;
17287         S2++;
17288       }
17289     }
17290     if (N1%5 == 0) {
17291       for (I3=ceild(9*N1,10);I3<=N1-1;I3++) {
17292         J3 = -I1-2*(I2)+2*I3 ;
17293         S2++;
17294       }
17295       J1 = -2*I1+3*N1 ;
17296       if ((2*I1+J1)%3 == 0) {
17297         J2 = (2*I1+J1)/3 ;
17298         J3 = 3*I1-4*J2 ;
17299         S1++;
17300         S2++;
17301       }
17302     }
17303     for (I2=ceild(N1+5,5);I2<=floord(7*N1-10,30);I2++) {
17304       for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
17305         J3 = -I1-2*(I2)+2*I3 ;
17306         S2++;
17307       }
17308       for (I3=I1-2*I2;I3<=N1;I3++) {
17309         J3 = -I1-2*(I2)+2*I3 ;
17310         S2++;
17311         J3 = I1-(I2)-(I3) ;
17312         S1++;
17313       }
17314     }
17315     for (I2=ceild(7*N1-5,30);I2<=floord(7*N1,30);I2++) {
17316       for (I3=I1-2*I2;I3<=N1;I3++) {
17317         J3 = -I1-2*(I2)+2*I3 ;
17318         S2++;
17319         J3 = I1-(I2)-(I3) ;
17320         S1++;
17321       }
17322     }
17323     for (I2=ceild(7*N1+5,30);I2<=floord(3*N1,10);I2++) {
17324       for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17325         J3 = I1-(I2)-(I3) ;
17326         S1++;
17327       }
17328       for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17329         J3 = -I1-2*(I2)+2*I3 ;
17330         S2++;
17331         J3 = I1-(I2)-(I3) ;
17332         S1++;
17333       }
17334     }
17335     for (I2=ceild(3*N1+5,10);I2<=N1;I2++) {
17336       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17337         J3 = I1-(I2)-(I3) ;
17338         S1++;
17339       }
17340     }
17341   }
17343 for (I1=max(ceild(7*N1+1,5),ceild(18*N1+8,13));I1<=floord(3*N1-2,2);I1++) {
17344   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
17345     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17346       J3 = -I1-2*(I2)+2*I3 ;
17347       S2++;
17348     }
17349   }
17350   for (I2=max(ceild(I1-N1,2),-2*I1+3*N1+1);I2<=floord(I1-2,6);I2++) {
17351     for (I3=ceild(I1+2*I2,2);I3<=I1-2*I2-1;I3++) {
17352       J3 = -I1-2*(I2)+2*I3 ;
17353       S2++;
17354     }
17355     for (I3=I1-2*I2;I3<=N1;I3++) {
17356       J3 = -I1-2*(I2)+2*I3 ;
17357       S2++;
17358       J3 = I1-(I2)-(I3) ;
17359       S1++;
17360     }
17361   }
17362   for (I2=ceild(I1-1,6);I2<=floord(I1,6);I2++) {
17363     for (I3=I1-2*I2;I3<=N1;I3++) {
17364       J3 = -I1-2*(I2)+2*I3 ;
17365       S2++;
17366       J3 = I1-(I2)-(I3) ;
17367       S1++;
17368     }
17369   }
17370   for (I2=ceild(I1+1,6);I2<=floord(-I1+2*N1,2);I2++) {
17371     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17372       J3 = I1-(I2)-(I3) ;
17373       S1++;
17374     }
17375     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17376       J3 = -I1-2*(I2)+2*I3 ;
17377       S2++;
17378       J3 = I1-(I2)-(I3) ;
17379       S1++;
17380     }
17381   }
17382   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
17383     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17384       J3 = I1-(I2)-(I3) ;
17385       S1++;
17386     }
17387   }
17389 for (I1=max(max(N1+3,ceild(3*N1-1,2)),ceild(18*N1+6,13));I1<=floord(6*N1-1,4);I1++) {
17390   for (I2=1;I2<=floord(I1-N1-1,2);I2++) {
17391     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17392       J3 = -I1-2*(I2)+2*I3 ;
17393       S2++;
17394     }
17395   }
17396   for (I2=max(ceild(I1-N1,2),-2*I1+3*N1+1);I2<=floord(I1,6);I2++) {
17397     for (I3=I1-2*I2;I3<=N1;I3++) {
17398       J3 = -I1-2*(I2)+2*I3 ;
17399       S2++;
17400       J3 = I1-(I2)-(I3) ;
17401       S1++;
17402     }
17403   }
17404   for (I2=ceild(I1+1,6);I2<=floord(-I1+2*N1,2);I2++) {
17405     for (I3=I1-2*I2;I3<=floord(I1+2*I2-1,2);I3++) {
17406       J3 = I1-(I2)-(I3) ;
17407       S1++;
17408     }
17409     for (I3=ceild(I1+2*I2,2);I3<=N1;I3++) {
17410       J3 = -I1-2*(I2)+2*I3 ;
17411       S2++;
17412       J3 = I1-(I2)-(I3) ;
17413       S1++;
17414     }
17415   }
17416   for (I2=ceild(-I1+2*N1+1,2);I2<=N1;I2++) {
17417     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17418       J3 = I1-(I2)-(I3) ;
17419       S1++;
17420     }
17421   }
17423 if (N1 >= 6) {
17424   if (3*N1%2 == 0) {
17425     I1 = 3*N1/2 ;
17426     for (I2=1;I2<=floord(N1-2,4);I2++) {
17427       for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17428         J3 = -I1-2*(I2)+2*I3 ;
17429         S2++;
17430       }
17431     }
17432     if (N1%4 == 0) {
17433       for (I3=I1-2*(N1/4);I3<=N1;I3++) {
17434         J3 = -I1-2*(I2)+2*I3 ;
17435         S2++;
17436         J3 = I1-(I2)-(I3) ;
17437         S1++;
17438       }
17439     }
17440     for (I2=ceild(N1+2,4);I2<=N1;I2++) {
17441       for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17442         J3 = I1-(I2)-(I3) ;
17443         S1++;
17444       }
17445     }
17446   }
17448 for (I1=ceild(3*N1+1,2);I1<=2*N1-2;I1++) {
17449   for (I2=1;I2<=floord(-I1+2*N1,2);I2++) {
17450     for (I3=ceild(I1+2*I2,2);I3<=min(N1,floord(2*I1+3*I2,3));I3++) {
17451       J3 = -I1-2*(I2)+2*I3 ;
17452       S2++;
17453     }
17454   }
17455   for (I2=ceild(I1-N1,2);I2<=N1;I2++) {
17456     for (I3=max(max(ceild(I1-I2,2),I1-2*I2),1);I3<=min(I1-I2,N1);I3++) {
17457       J3 = I1-(I2)-(I3) ;
17458       S1++;
17459     }
17460   }
17462 for (I1=2*N1-1;I1<=3*N1;I1++) {
17463   for (I2=max(ceild(I1-N1,2),1);I2<=N1;I2++) {
17464     for (I3=max(max(I1-2*I2,ceild(I1-I2,2)),1);I3<=min(N1,I1-I2);I3++) {
17465       J3 = I1-(I2)-(I3) ;
17466       S1++;
17467     }
17468   }
17472     /* statements print */
17473     fprintf(stderr, "S1 : %d\n", S1);
17474     fprintf(stderr, "S2 : %d\n", S2);
17481 ------=_Part_1422_26966204.1114622640387
17482 Content-Type: application/octet-stream; name=LUDom_OSP.type2.c
17483 Content-Transfer-Encoding: 7bit
17484 Content-Disposition: attachment; filename="LUDom_OSP.type2.c"
17486 /* Author : DaeGon Kim 
17487    Date   : Tue Apr 26 20:28:07 MDT 2005 */
17489 #include <stdio.h>
17490 #include <stdlib.h>
17492 #define max(x,y) ((x)>(y) ? (x) : (y))
17493 #define min(x,y) ((x)>(y) ? (y) : (x))
17494 #define ceild(x,y) ((x)+1) / (y) 
17495 #define floord(x,y) (x) / (y) 
17497 int main(int argc, char **argv) {
17499     /* parameters declaration */
17500     int N1 = 0;
17502     /* statements declaration */
17503     int S1 = 0;
17504     int S2 = 0;
17506     /* iterators declaration */
17507     int I1 = 0;
17508     int J1 = 0;
17509     int I2 = 0;
17510     int J2 = 0;
17511     int I3 = 0;
17512     int J3 = 0;
17514     /* check arguements and get values of parameters */
17515     if ( argc != 1 + 1) {
17516         printf("The number of arguements for %s is 1\n", argv[0]);
17517         exit(0);
17518     }
17520     N1 = atoi(argv[1]);
17522 /* Generated from ./INPUT/CLOOG/LUDom_OSP_cloog by CLooG v0.12.2 64 bits in 0.03s. */
17523 for (I1=0;I1<=3*N1;I1++) {
17524   for (I2=max(max(1,ceild(I1-2*N1+2,2)),I1-2*N1);I2<=N1;I2++) {
17525     for (I3=max(max(I1-2*I2,ceild(I1-I2,2)),1);I3<=min(min(N1,floord(I1+2*I2-1,2)),I1-I2);I3++) {
17526       J3 = I1-(I2)-(I3) ;
17527       S1++;
17528     }
17529     for (I3=ceild(I1+2*I2,2);I3<=min(min(N1,I1-2*I2-1),floord(2*I1+3*I2,3));I3++) {
17530       J3 = -I1-2*(I2)+2*I3 ;
17531       S2++;
17532     }
17533     for (I3=max(I1-2*I2,ceild(I1+2*I2,2));I3<=min(N1,floord(2*I1+I2-1,3));I3++) {
17534       J3 = -I1-2*(I2)+2*I3 ;
17535       S2++;
17536       J3 = I1-(I2)-(I3) ;
17537       S1++;
17538     }
17539     if ((2*I1+I2)%3 == 0) {
17540       I3 = (2*I1+I2)/3 ;
17541       J1 = -2*I1+3*I3 ;
17542       if ((2*I1+J1)%3 == 0) {
17543         J2 = (2*I1+J1)/3 ;
17544         J3 = 3*I1-4*J2 ;
17545         S1++;
17546         S2++;
17547       }
17548     }
17549     for (I3=max(I1-2*I2,ceild(2*I1+I2+1,3));I3<=min(min(N1,floord(2*I1+3*I2,3)),I1-I2);I3++) {
17550       J3 = I1-(I2)-(I3) ;
17551       S1++;
17552       J3 = -I1-2*(I2)+2*I3 ;
17553       S2++;
17554     }
17555     for (I3=max(ceild(2*I1+3*I2+1,3),I1-2*I2);I3<=min(N1,I1-I2);I3++) {
17556       J3 = I1-(I2)-(I3) ;
17557       S1++;
17558     }
17559     for (I3=max(ceild(I1+2*I2,2),I1-I2+1);I3<=min(floord(2*I1+3*I2,3),N1);I3++) {
17560       J3 = -I1-2*(I2)+2*I3 ;
17561       S2++;
17562     }
17563   }
17567     /* statements print */
17568     fprintf(stderr, "S1 : %d\n", S1);
17569     fprintf(stderr, "S2 : %d\n", S2);
17576 ------=_Part_1422_26966204.1114622640387--