Index: Tst/Wester/README
===================================================================
--- Tst/Wester/README	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
+++ Tst/Wester/README	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
@@ -0,0 +1,41 @@
+These are the tests from the Lewis/Wester test suite for polynomial
+systems. Some details of Singular's performance:
+
+A:	divide factorials		ok
+B:	sum 1/i				ok
+C:	gcd (big integers)		ok
+D:	sum rational functions		ok
+E:	sum rational functions		ok
+F:	gcd(2 var polys)		ok
+G:	gcd(3 var polys)		ok
+G_p:	G mod 181			ok
+H:	det (Hilbert(80))		with bareiss ok
+I:	invert(Hilbert(40))		with inverse ok
+J:	check I				ok
+K:	invert(Hilbert(70))		with inverse ok
+L:	check K				ok
+M1:	det(sparse, rank 26, 5 var)	ok	
+M2:	det(sparse, rank 101, 5 var)	ok
+N:	subst algebraic numbers		no chance
+O1:	3 dets (sparse, rank 15, 22 var)	ok
+O2:	gcd of					???
+P:	det(sparse, rank 101, rationals)	ok
+P':	det(less sparse, rank 101, rationals)	ok
+Q:	det(sparse, rank 101, 1-var)		ok
+Q':	det(less sparse, rank 101, 1-var)	ok
+Pp:     P mod 181			ok
+P'p:	P' mod 181			ok
+Qp:	Q mod 181			ok
+Q'p:	Q' mod 181			ok
+S:	Hermite form			N/A
+T:	Hermite form			N/A
+U:	Smith form			N/A
+V:	Smith form			N/A
+W1:	Smith form			N/A
+W2:	Smith form			N/A
+X:	gcd(Galousfield, minpoly)	very long
+Y:	det(Galousfield, minpoly)	ok
+
+For the original stuff tey used ot benchmark singular, see 'singall'.
+For mupad and maple sources, see 'mupadall', 'mapleall'.
+For more details, see also www.fordham.edu/lewis/cacomp.html
Index: Tst/Wester/mapleall
===================================================================
--- Tst/Wester/mapleall	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
+++ Tst/Wester/mapleall	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
@@ -0,0 +1,829 @@
+with(linalg):
+readlib(showtime):
+on;
+# -----------------------------------------------------------------------------
+# A
+
+for i from 1 to 100 do
+   (1000 + i)!/(900 + i)!
+od:
+
+# -----------------------------------------------------------------------------
+# B formerly A'
+
+s := 0:
+for i from 1 to 1000 do
+   s := s + 1/i
+od:
+s := 's':
+
+# -----------------------------------------------------------------------------
+# C formerly B
+
+x := 13*17*31:
+y := 13*19*29:
+for i from 1 to 200 do
+   gcd(x^(300 + (i mod 181)), y^(200 + (i mod 183)))
+od:
+x := 'x':
+y := 'y':
+
+# -----------------------------------------------------------------------------
+# D formerly C
+
+s := 0:
+for i from 1 to 10 do
+   s := s + i*y*t^i/(y + i*t)^i
+od:
+s := 's':
+
+# -----------------------------------------------------------------------------
+# E formerly D
+
+s := 0:
+for i from 1 to 10 do
+   s := s + i*y*t^i/(y + abs(5 - i)*t)^i
+od:
+s := 's':
+
+# -----------------------------------------------------------------------------
+# F
+
+p := expand((x^2 - 3*x*y + y^2)^4*(3*x - 7*y + 2)^5):
+q := expand((x^2 - 3*x*y + y^2)^3*(3*x - 7*y - 2)^6):
+gcd(p, q):
+factor(%);
+p := 'p':
+q := 'q':
+
+# -----------------------------------------------------------------------------
+# G
+
+p := expand((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^4*(3*x-7*y+2*z-3)^5):
+q := expand((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^3*(3*x-7*y+2*z+3)^6):
+gcd(p, q):
+factor(%);
+p := 'p':
+q := 'q':
+
+# -----------------------------------------------------------------------------
+# Gp
+
+p := expand((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^4*(3*x-7*y+2*z-3)^5)
+            mod 181:
+q := expand((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^3*(3*x-7*y+2*z+3)^6)
+            mod 181:
+Gcd(p, q) mod 181:
+Factor(%) mod 181;
+p := 'p':
+q := 'q':
+
+# -----------------------------------------------------------------------------
+# H, I, J, K and L
+
+# H
+h80 := hilbert(80):
+det(h80):
+h80 := 'h80':
+
+h40 := hilbert(40):
+# I
+hinv := inverse(h40):
+# J
+evalm(h40 &* hinv):
+h40 := 'h40':
+hinv := 'hinv':
+
+h70 := hilbert(70):
+# K
+hinv := inverse(h70):
+# L
+evalm(h70 &* hinv):
+h70 := 'h70':
+hinv := 'hinv':
+
+# -----------------------------------------------------------------------------
+# M1
+
+w := matrix( [ [ 1,  1, 1,  7, x4 , 12, x3 , 17, x2 , 22, x1 ],
+         [ 2,  2, 1,  8, x4 , 13, x3 , 18, x2 , 23, x1 ],
+         [ 3,  3, 1,  9, x4 , 14, x3 , 19, x2 , 24, x1 ],
+         [ 4,  4, 1, 10, x4 , 15, x3 , 20, x2 , 25, x1 ],
+         [ 5,  5, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [ 6,  2, x5 ,  6, 1, 12, x3 , 17, x2 , 22, x1 ],
+         [ 7,  3, x5 ,  7, 1, 13, x3 , 18, x2 , 23, x1 ],
+         [ 8,  4, x5 ,  8, 1, 14, x3 , 19, x2 , 24, x1 ],
+         [ 9,  5, x5 ,  9, 1, 15, x3 , 20, x2 , 25, x1 ],
+         [10, 10, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [11,  2, x5 ,  7, x4 , 11, 1, 17, x2 , 22, x1 ],
+         [12,  3, x5 ,  8, x4 , 12, 1, 18, x2 , 23, x1 ],
+         [13,  4, x5 ,  9, x4 , 13, 1, 19, x2 , 24, x1 ],
+         [14,  5, x5 , 10, x4 , 14, 1, 20, x2 , 25, x1 ],
+         [15, 15, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [16,  2, x5 ,  7, x4 , 12, x3 , 16, 1, 22, x1 ],
+         [17,  3, x5 ,  8, x4 , 13, x3 , 17, 1, 23, x1 ],
+         [18,  4, x5 ,  9, x4 , 14, x3 , 18, 1, 24, x1 ],
+         [19,  5, x5 , 10, x4 , 15, x3 , 19, 1, 25, x1 ],
+         [20, 20, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [21,  2, x5 ,  7, x4 , 12, x3 , 17, x2 , 21, 1],
+         [22,  3, x5 ,  8, x4 , 13, x3 , 18, x2 , 22, 1],
+         [23,  4, x5 ,  9, x4 , 14, x3 , 19, x2 , 23, 1],
+         [24,  5, x5 , 10, x4 , 15, x3 , 20, x2 , 24, 1],
+         [25, 25, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [26,  1, x5 ,  6, x4 , 11, x3 , 16, x2 , 21, x1 ] ]):
+
+m := matrix(26, 26, 0):
+
+fill :=
+   proc() global m, w; local i, j;
+   for i from 1 to 26 do
+      for j from 1 to 5 do
+         m[i, w[i, 2*j]] := w[i, 2*j+1]
+      od
+   od
+   end:
+
+fill():
+det(m):
+
+w := 'w':
+m := 'm':
+
+# -----------------------------------------------------------------------------
+# M2
+
+w := matrix([ [ 1,  1, 1, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [ 2,  2, 1, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [ 3,  3, 1, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [ 4,  4, 1, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [ 5,  5, 1, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [ 6,  6, 1, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [ 7,  7, 1, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [ 8,  8, 1, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [ 9,  9, 1, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [10, 10, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [11,  2, x10, 11, 1, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [12,  3, x10, 12, 1, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [13,  4, x10, 13, 1, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [14,  5, x10, 14, 1, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [15,  6, x10, 15, 1, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [16,  7, x10, 16, 1, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [17,  8, x10, 17, 1, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [18,  9, x10, 18, 1, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [19, 10, x10, 19, 1, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [20, 20, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [21,  2, x10, 12, x9, 21, 1, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [22,  3, x10, 13, x9, 22, 1, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [23,  4, x10, 14, x9, 23, 1, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [24,  5, x10, 15, x9, 24, 1, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [25,  6, x10, 16, x9, 25, 1, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [26,  7, x10, 17, x9, 26, 1, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [27,  8, x10, 18, x9, 27, 1, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [28,  9, x10, 19, x9, 28, 1, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [29, 10, x10, 20, x9, 29, 1, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [30, 30, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [31,  2, x10, 12, x9, 22, x8, 31, 1, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [32,  3, x10, 13, x9, 23, x8, 32, 1, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [33,  4, x10, 14, x9, 24, x8, 33, 1, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [34,  5, x10, 15, x9, 25, x8, 34, 1, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [35,  6, x10, 16, x9, 26, x8, 35, 1, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [36,  7, x10, 17, x9, 27, x8, 36, 1, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [37,  8, x10, 18, x9, 28, x8, 37, 1, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [38,  9, x10, 19, x9, 29, x8, 38, 1, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [39, 10, x10, 20, x9, 30, x8, 39, 1, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [40, 40, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [41,  2, x10, 12, x9, 22, x8, 32, x7, 41, 1, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [42,  3, x10, 13, x9, 23, x8, 33, x7, 42, 1, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [43,  4, x10, 14, x9, 24, x8, 34, x7, 43, 1, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [44,  5, x10, 15, x9, 25, x8, 35, x7, 44, 1, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [45,  6, x10, 16, x9, 26, x8, 36, x7, 45, 1, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [46,  7, x10, 17, x9, 27, x8, 37, x7, 46, 1, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [47,  8, x10, 18, x9, 28, x8, 38, x7, 47, 1, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [48,  9, x10, 19, x9, 29, x8, 39, x7, 48, 1, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [49, 10, x10, 20, x9, 30, x8, 40, x7, 49, 1, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [50, 50, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [51,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 51, 1, 62, x4, 72, x3, 82, x2, 92, x1],
+         [52,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 52, 1, 63, x4, 73, x3, 83, x2, 93, x1],
+         [53,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 53, 1, 64, x4, 74, x3, 84, x2, 94, x1],
+         [54,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 54, 1, 65, x4, 75, x3, 85, x2, 95, x1],
+         [55,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 55, 1, 66, x4, 76, x3, 86, x2, 96, x1],
+         [56,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 56, 1, 67, x4, 77, x3, 87, x2, 97, x1],
+         [57,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 57, 1, 68, x4, 78, x3, 88, x2, 98, x1],
+         [58,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 58, 1, 69, x4, 79, x3, 89, x2, 99, x1],
+         [59, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 59, 1, 70, x4, 80, x3, 90, x2, 100, x1],
+         [60, 60, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [61,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 61,   1, 72, x3, 82, x2, 92, x1],
+         [62,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 62,   1, 73, x3, 83, x2, 93, x1],
+         [63,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 63,   1, 74, x3, 84, x2, 94, x1],
+         [64,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 64,   1, 75, x3, 85, x2, 95, x1],
+         [65,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 65,   1, 76, x3, 86, x2, 96, x1],
+         [66,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 66,   1, 77, x3, 87, x2, 97, x1],
+         [67,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 67,   1, 78, x3, 88, x2, 98, x1],
+         [68,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 68,   1, 79, x3, 89, x2, 99, x1],
+         [69, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 69,   1, 80, x3, 90, x2, 100, x1],
+         [70, 70, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [71,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 71,   1, 82, x2, 92, x1],
+         [72,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 72,   1, 83, x2, 93, x1],
+         [73,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 73,   1, 84, x2, 94, x1],
+         [74,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 74,   1, 85, x2, 95, x1],
+         [75,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 75,   1, 86, x2, 96, x1],
+         [76,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 76,   1, 87, x2, 97, x1],
+         [77,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 77,   1, 88, x2, 98, x1],
+         [78,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 78,   1, 89, x2, 99, x1],
+         [79, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 79,   1, 90, x2, 100, x1],
+         [80, 80, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [81,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 81,   1, 92, x1],
+         [82,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 82,   1, 93, x1],
+         [83,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 83,   1, 94, x1],
+         [84,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 84,   1, 95, x1],
+         [85,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 85,   1, 96, x1],
+         [86,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 86,   1, 97, x1],
+         [87,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 87,   1, 98, x1],
+         [88,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 88,   1, 99, x1],
+         [89, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 89,   1, 100, x1],
+         [90, 90, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [91,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 91,   1],
+         [92,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 92,   1],
+         [93,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 93,   1],
+         [94,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 94,   1],
+         [95,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 95,   1],
+         [96,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 96,   1],
+         [97,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 97,   1],
+         [98,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 98,   1],
+         [99, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 99,   1],
+         [100, 100, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [101,  1, x10, 11, x9, 21, x8, 31, x7, 41, x6, 51, x5, 61, x4, 71, x3, 81, x2, 91, x1] ] ):
+
+m := matrix(101, 101, 0):
+
+fill :=
+   proc() global m, w; local i, j;
+   for i from 1 to 101 do
+      for j from 1 to 10 do
+         m[i, w[i, 2*j]] := w[i, 2*j+1]
+      od
+   od
+   end:
+
+fill():
+det(m):
+
+w := 'w':
+m := 'm':
+
+# -----------------------------------------------------------------------------
+# N
+
+res := p11*p22*q1^2*q4^2-p12*p21*q1^2*q4^2-n22*p11*p22*q1*q4^2+2*n11*p11*p22*q1*q4^2-
+p11*p22*q1*q4^2+n22*p12*p21*q1*q4^2-2*n11*p12*p21*q1*q4^2+p12*p21*q1*q4^2+2*g^2*
+p11*p22*q4^2-2*n11*n22*p11*p22*q4^2+2*n22*p11*p22*q4^2+2*n11*p11*p22*q4^2-2*p11*p22*
+q4^2-2*g^2*p12*p21*q4^2+2*n11*n22*p12*p21*q4^2-2*n22*p12*p21*q4^2-2*n11*p12*p21*q4^2+
+2*p12*p21*q4^2-n11*p22*q1*q2*q3*q4+g*p21*q1*q2*q3*q4+g*p12*q1*q2*q3*q4-n22*p11*
+q1*q2*q3*q4-g^2*p22*q2*q3*q4+n11*n22*p22*q2*q3*q4-n11*p22*q2*q3*q4-2*g*p21*q2*q3*
+q4+g*p12*q2*q3*q4+2*g^2*p11*q2*q3*q4-2*n11*n22*p11*q2*q3*q4+2*n22*p11*q2*q3*q4-n11*
+p22*q1*q3*q4+p22*q1*q3*q4+g*p21*q1*q3*q4-2*g*p12*q1*q3*q4+2*n22*p11*q1*q3*q4-2*p11*
+q1*q3*q4-g^2*p22*q3*q4+n11*n22*p22*q3*q4-n22*p22*q3*q4-n11*p22*q3*q4+p22*q3*q4-
+4*g^2*p11*q3*q4+4*n11*n22*p11*q3*q4-4*n22*p11*q3*q4-4*n11*p11*q3*q4+4*p11*q3*q4+
+n22*p11*p22*q1*q2*q4-2*n11*p11*p22*q1*q2*q4+2*n11*p22*q1*q2*q4-n22*p12*p21*q1*q2*
+q4+2*n11*p12*p21*q1*q2*q4+g*p21*q1*q2*q4-2*g*p12*q1*q2*q4-n22*p11*q1*q2*q4-4*g^2*
+p11*p22*q2*q4+4*n11*n22*p11*p22*q2*q4-2*n22*p11*p22*q2*q4-2*n11*p11*p22*q2*q4+2*g^2*
+p22*q2*q4-2*n11*n22*p22*q2*q4+2*n11*p22*q2*q4+4*g^2*p12*p21*q2*q4-4*n11*n22*p12*p21*
+q2*q4+2*n22*p12*p21*q2*q4+2*n11*p12*p21*q2*q4-2*g*p21*q2*q4-2*g*p12*q2*q4+2*g^2*p11*
+q2*q4-2*n11*n22*p11*q2*q4+2*n22*p11*q2*q4-p11*p22*q1^2*q4-p22*q1^2*q4+p12*p21*q1^2*
+q4+2*p11*q1^2*q4-n22*p11*p22*q1*q4-4*n11*p11*p22*q1*q4+5*p11*p22*q1*q4+n22*p22*q1*
+q4-p22*q1*q4+n22*p12*p21*q1*q4+4*n11*p12*p21*q1*q4-5*p12*p21*q1*q4+g*p21*q1*q4+
+4*g*p12*q1*q4+4*n11*p11*q1*q4-4*p11*q1*q4-g^2*q2^2*q3^2+n11*n22*q2^2*q3^2+g^2*
+q2*q3^2-n11*n22*q2*q3^2-n22*q2*q3^2+2*n11*q2*q3^2+2*g^2*q3^2-2*n11*n22*q3^2+2*n22*
+q3^2+2*n11*q3^2-2*q3^2+g^2*p22*q2^2*q3-n11*n22*p22*q2^2*q3-2*g^2*p11*q2^2*q3+2*n11*
+n22*p11*q2^2*q3+g^2*q2^2*q3-n11*n22*q2^2*q3+2*n11*p22*q1*q2*q3-2*g*p21*q1*q2*q3+
+g*p12*q1*q2*q3-n22*p11*q1*q2*q3+n22*q1*q2*q3-2*n11*q1*q2*q3+g^2*p22*q2*q3-n11*
+n22*p22*q2*q3+n22*p22*q2*q3+4*g*p21*q2*q3+g*p12*q2*q3+4*g^2*p11*q2*q3-4*n11*n22*
+p11*q2*q3+4*n11*p11*q2*q3-5*g^2*q2*q3+5*n11*n22*q2*q3-n22*q2*q3-4*n11*q2*q3+2*n11*
+p22*q1*q3-2*p22*q1*q3-2*g*p21*q1*q3-2*g*p12*q1*q3+2*n22*p11*q1*q3-2*p11*q1*q3-2*n22*
+q1*q3-2*n11*q1*q3+4*q1*q3+2*g^2*p11*p22*q2^2-2*n11*n22*p11*p22*q2^2-2*g^2*p22*q2^2+
+2*n11*n22*p22*q2^2-2*g^2*p12*p21*q2^2+2*n11*n22*p12*p21*q2^2-2*g^2*p11*q2^2+2*n11*
+n22*p11*q2^2+2*g^2*q2^2-2*n11*n22*q2^2+n22*p11*p22*q1*q2+4*n11*p11*p22*q1*q2-n22*
+p22*q1*q2-4*n11*p22*q1*q2-n22*p12*p21*q1*q2-4*n11*p12*p21*q1*q2-n22*p11*q1*q2-4*
+n11*p11*q1*q2+n22*q1*q2+4*n11*q1*q2-2*p11*p22*q1^2+2*p22*q1^2+2*p12*p21*q1^2+2*p11*
+q1^2-2*q1^2:
+
+ss1 := (4*g*a22^3-g*a12*a21*a22^2-4*n22*a21*a22^2+4*n11*a21*a22^2+7*g*a12*a22^2+4*g^2*a22^2-
+4*n11*n22*a22^2+4*n11*a22^2+n22*a12*a21^2*a22-n11*a12*a21^2*a22-4*g*a21^2*a22-
+g*a12^2*a21*a22-5*g^2*a12*a21*a22+5*n11*n22*a12*a21*a22-7*n22*a12*a21*a22+2*n11*a12*
+a21*a22-4*g*a21*a22+3*g*a12^2*a22+3*g^2*a12*a22-3*n11*n22*a12*a22+3*n11*a12*a22+g*
+a12*a21^3+g^2*a12^2*a21^2-n11*n22*a12^2*a21^2+n22*a12^2*a21^2-2*g*a12*a21^2-3*g^2*
+a12^2*a21+3*n11*n22*a12^2*a21-3*n22*a12^2*a21-3*g*a12*a21)/(3*g*a12*a21*a22^2-3*n22*
+a21*a22^2+g*a12*a22^2-n22*a22^2+3*n11*a12*a21^2*a22-3*g*a21^2*a22+5*g*a12^2*a21*
+a22-5*n22*a12*a21*a22+4*n11*a12*a21*a22-4*g*a21*a22+g*a12^2*a22-n22*a12*a22+n11*
+a12*a22-g*a22+2*n11*a12^2*a21^2-2*g*a12*a21^2+2*g*a12^3*a21-2*n22*a12^2*a21+2*n11*
+a12^2*a21-2*g*a12*a21):
+
+ ss2 := (4*g*a12*a22^2-4*n22*a22^2+4*a22^2-g*a12^2*a21*a22+n22*a12*a21*a22+4*n11*a12*a21*
+a22-5*a12*a21*a22-4*g*a21*a22+3*g*a12^2*a22-3*n22*a12*a22+3*a12*a22-n11*a12^2*a21^2+
+a12^2*a21^2+g*a12*a21^2+3*n11*a12^2*a21-3*a12^2*a21-3*g*a12*a21)/(2*g*a12*a22^2-
+2*n22*a22^2+g*a12^2*a21*a22-n22*a12*a21*a22+2*n11*a12*a21*a22-2*g*a21*a22+2*g*a12^2*
+a22-2*n22*a12*a22+2*n11*a12*a22-2*g*a22+n11*a12^2*a21^2-g*a12*a21^2+g*a12^3*a21-
+n22*a12^2*a21+n11*a12^2*a21-g*a12*a21):
+
+ ss3 := (4*p21*a22^3-p21*a12*a21*a22^2-4*p22*a21*a22^2+4*p11*a21*a22^2+7*p21*a12*a22^2-4*
+p11*p22*a22^2+4*p12*p21*a22^2+4*p11*a22^2+p22*a12*a21^2*a22-p11*a12*a21^2*a22-4*
+p12*a21^2*a22-p21*a12^2*a21*a22+5*p11*p22*a12*a21*a22-7*p22*a12*a21*a22-5*p12*p21*
+a12*a21*a22+2*p11*a12*a21*a22-4*p12*a21*a22+3*p21*a12^2*a22-3*p11*p22*a12*a22+3*p12*
+p21*a12*a22+3*p11*a12*a22+p12*a12*a21^3-p11*p22*a12^2*a21^2+p22*a12^2*a21^2+p12*
+p21*a12^2*a21^2-2*p12*a12*a21^2+3*p11*p22*a12^2*a21-3*p22*a12^2*a21-3*p12*p21*a12^2*
+a21-3*p12*a12*a21)/(3*p21*a12*a21*a22^2-3*p22*a21*a22^2+p21*a12*a22^2-p22*a22^2+
+3*p11*a12*a21^2*a22-3*p12*a21^2*a22+5*p21*a12^2*a21*a22-5*p22*a12*a21*a22+4*p11*a12*
+a21*a22-4*p12*a21*a22+p21*a12^2*a22-p22*a12*a22+p11*a12*a22-p12*a22+2*p11*a12^2*
+a21^2-2*p12*a12*a21^2+2*p21*a12^3*a21-2*p22*a12^2*a21+2*p11*a12^2*a21-2*p12*a12*a21):
+
+ ss4 := (4*p21*a12*a22^2-4*p22*a22^2+4*a22^2-p21*a12^2*a21*a22+p22*a12*a21*a22+4*p11*a12*
+a21*a22-5*a12*a21*a22-4*p12*a21*a22+3*p21*a12^2*a22-3*p22*a12*a22+3*a12*a22-p11*a12^2*
+a21^2+a12^2*a21^2+p12*a12*a21^2+3*p11*a12^2*a21-3*a12^2*a21-3*p12*a12*a21)/(2*p21*
+a12*a22^2-2*p22*a22^2+p21*a12^2*a21*a22-p22*a12*a21*a22+2*p11*a12*a21*a22-2*p12*
+a21*a22+2*p21*a12^2*a22-2*p22*a12*a22+2*p11*a12*a22-2*p12*a22+p11*a12^2*a21^2-p12*
+a12*a21^2+p21*a12^3*a21-p22*a12^2*a21+p11*a12^2*a21-p12*a12*a21):
+
+q1 := ss1:
+q2 := ss2:
+q3 := ss3:
+q4 := ss4:
+res;
+normal(%);
+simplify(%);
+
+res := 'res':
+ss1 := 'ss1':
+ss2 := 'ss2':
+ss3 := 'ss3':
+ss4 := 'ss4':
+q1 := 'q1':
+q2 := 'q2':
+q3 := 'q3':
+q4 := 'q4':
+
+# -----------------------------------------------------------------------------
+# O1 and O2
+
+f := a6*y^2 + a5*y*z + a4*y*w + a3*z^2 + a2*z*w + a1*w^2:
+g := b6*y^2 + b5*y*z + b4*y*w + b3*z^2 + b2*z*w + b1*w^2:
+h := c6*y^2 + c5*y*z + c4*y*w + c3*z^2 + c2*z*w + c1*w^2:
+
+d1 := matrix([ [  a6, a5, a4, a3, a2, a1, 0,  0,  0,  0,  0,  0,  0,  0,  0],
+            [0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0],
+            [0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0,  0],
+            [0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0],
+            [0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1],
+            [0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0,  0],
+            [0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0],
+            [0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1],
+            [0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1],
+            [0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0],
+            [0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0 ] ]):
+
+d2 := matrix([[ b6, b5, b4, b3, b2, b1, 0,  0,  0,  0,  0,  0,  0,  0,  0],
+            [0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0],
+            [0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0,  0],
+            [0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0],
+            [0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1],
+            [0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0,  0],
+            [0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0],
+            [0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1],
+            [0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1],
+            [0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0],
+            [0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0 ] ]):
+
+d3 := matrix([ [ c6, c5, c4, c3, c2, c1, 0,  0,  0,  0,  0,  0,  0,  0,  0],
+            [0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0],
+            [0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0,  0],
+            [0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0],
+            [0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1],
+            [0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0,  0],
+            [0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0],
+            [0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1],
+            [0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1],
+            [0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0],
+            [0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0 ] ]):
+
+# O1
+det1 := det(d1):
+det2 := det(d2):
+det3 := det(d3):
+# O2
+gcd(gcd(det1, det2), det3):
+factor(%);
+
+f := 'f':
+g := 'g':
+h := 'h':
+d1 := 'd1':
+d2 := 'd2':
+d3 := 'd3':
+det1 := 'det1':
+det2 := 'det2':
+det3 := 'det3':
+
+# -----------------------------------------------------------------------------
+# P, Pp, P', P'p, Q, Qp, Q', Q'p, T and W1
+
+d := matrix([[-517,-540,-90,-353,-1086,-1315,-187,168,-317,-1426,-754,-83,542,-215,538,-1471,-885,-925,373,1344],
+       [ 1210,-716,-1241,-444,50,168,1162,-233,1325,185,769,519,1187,760,1332,849,-795,-956,-956,461],
+       [ -500,1003,-1447,-180,678,-195,446,1447,-342,141,-779,294,879,-119,86,-888,746,911,1209,-85],
+       [ 294,-967,1224,842,1120,803,584,-325,-1257,-1497,50,-343,1088,-293,1491,-841,421,-880,-678,-758],
+       [   -793,-193,290,-1254,14,-713,-1359,-1255,1424,517,785,1157,-640,-873,851,611,669,1450,105,918],
+       [   -1369,515,289,1231,-1206,-991,1342,899,851,-1355,505,-1462,268,376,414,1099,-1297,97,-565,751],
+       [   178,548,1170,-744,130,-1238,111,-447,-788,-285,374,-293,-424,-1364,-394,899,-1031,-524,403,-436],
+       [   557,-414,-130,311,-1346,-1439,-293,1341,420,-775,-999,-1457,-1183,-819,303,-661,407,177,-327,820],
+       [   539,-64,-613,1164,-827,931,1361,1050,1260,362,-977,-634,1105,-1172,653,-658,-1426,-264,507,-272],
+       [   392,253,92,895,-487,619,1286,-124,-743,-904,824,180,511,-57,1362,642,-14,782,386,-396],
+       [   -685,-934,483,-659,-13,-232,861,1076,-950,-671,1414,-769,260,28,232,-1037,636,-1180,1116,1310],
+       [ 1319,-276,-936,-1149,873,196,-1488,-626,-150,-1172,-1319,-92,-1163,659,345,1036,-265,-587,-959,-986],
+       [   -81,1015,1062,-1162,907,-555,-51,712,-706,277,-300,1061,-1067,449,-1453,-1296,3,1034,-238,383],
+       [   1150,-460,-1073,-907,255,-1407,-872,-1433,-282,705,925,-263,1367,740,40,1425,88,-418,-86,1175],
+       [   -1491,791,-1476,1150,-496,-809,-781,98,715,1372,157,-397,1460,732,576,1265,-133,1083,-945,95],
+       [-1302,1271,-371,66,-468,484,-217,175,-1254,1274,267,-609,-1161,-1497,-607,-104,-1418,-444,-1403,1259],
+       [   -1015,1351,893,557,-631,1172,1308,-1196,996,104,972,346,-810,198,-690,52,-1137,1373,-708,662],
+       [   627,-266,-478,1109,-874,1399,735,874,-46,-802,962,1494,1193,-742,524,969,-668,-758,-1346,1207],
+       [   -705,1356,-123,-100,-1343,-603,-756,-643,-637,61,879,15,-1009,244,89,-51,-257,-1289,511,-1093],
+       [   599,1079,-976,1486,852,-685,-378,-386,1333,814,1483,-1171,-383,845,729,244,304,533,810,-724  ]]):
+
+w := matrix([ [ 1,  1, 1, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [ 2,  2, 1, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [ 3,  3, 1, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [ 4,  4, 1, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [ 5,  5, 1, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [ 6,  6, 1, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [ 7,  7, 1, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [ 8,  8, 1, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [ 9,  9, 1, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [10, 10, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [11,  2, 10, 11, 1, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [12,  3, 10, 12, 1, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [13,  4, 10, 13, 1, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [14,  5, 10, 14, 1, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [15,  6, 10, 15, 1, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [16,  7, 10, 16, 1, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [17,  8, 10, 17, 1, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [18,  9, 10, 18, 1, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [19, 10, 10, 19, 1, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [20, 20, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [21,  2, 10, 12, 9, 21, 1, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [22,  3, 10, 13, 9, 22, 1, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [23,  4, 10, 14, 9, 23, 1, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [24,  5, 10, 15, 9, 24, 1, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [25,  6, 10, 16, 9, 25, 1, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [26,  7, 10, 17, 9, 26, 1, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [27,  8, 10, 18, 9, 27, 1, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [28,  9, 10, 19, 9, 28, 1, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [29, 10, 10, 20, 9, 29, 1, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [30, 30, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [31,  2, 10, 12, 9, 22, 8, 31, 1, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [32,  3, 10, 13, 9, 23, 8, 32, 1, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [33,  4, 10, 14, 9, 24, 8, 33, 1, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [34,  5, 10, 15, 9, 25, 8, 34, 1, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [35,  6, 10, 16, 9, 26, 8, 35, 1, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [36,  7, 10, 17, 9, 27, 8, 36, 1, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [37,  8, 10, 18, 9, 28, 8, 37, 1, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [38,  9, 10, 19, 9, 29, 8, 38, 1, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [39, 10, 10, 20, 9, 30, 8, 39, 1, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [40, 40, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [41,  2, 10, 12, 9, 22, 8, 32, 7, 41, 1, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [42,  3, 10, 13, 9, 23, 8, 33, 7, 42, 1, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [43,  4, 10, 14, 9, 24, 8, 34, 7, 43, 1, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [44,  5, 10, 15, 9, 25, 8, 35, 7, 44, 1, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [45,  6, 10, 16, 9, 26, 8, 36, 7, 45, 1, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [46,  7, 10, 17, 9, 27, 8, 37, 7, 46, 1, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [47,  8, 10, 18, 9, 28, 8, 38, 7, 47, 1, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [48,  9, 10, 19, 9, 29, 8, 39, 7, 48, 1, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [49, 10, 10, 20, 9, 30, 8, 40, 7, 49, 1, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [50, 50, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [51,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 51, 1, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [52,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 52, 1, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [53,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 53, 1, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [54,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 54, 1, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [55,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 55, 1, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [56,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 56, 1, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [57,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 57, 1, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [58,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 58, 1, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [59, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 59, 1, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [60, 60, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [61,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 61,   1, 72, 3, 82, 2, 92, 1 ],
+         [62,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 62,   1, 73, 3, 83, 2, 93, 1 ],
+         [63,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 63,   1, 74, 3, 84, 2, 94, 1 ],
+         [64,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 64,   1, 75, 3, 85, 2, 95, 1 ],
+         [65,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 65,   1, 76, 3, 86, 2, 96, 1 ],
+         [66,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 66,   1, 77, 3, 87, 2, 97, 1 ],
+         [67,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 67,   1, 78, 3, 88, 2, 98, 1 ],
+         [68,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 68,   1, 79, 3, 89, 2, 99, 1 ],
+         [69, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 69,   1, 80, 3, 90, 2, 100, 1 ],
+         [70, 70, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [71,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 71,   1, 82, 2, 92, 1 ],
+         [72,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 72,   1, 83, 2, 93, 1 ],
+         [73,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 73,   1, 84, 2, 94, 1 ],
+         [74,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 74,   1, 85, 2, 95, 1 ],
+         [75,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 75,   1, 86, 2, 96, 1 ],
+         [76,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 76,   1, 87, 2, 97, 1 ],
+         [77,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 77,   1, 88, 2, 98, 1 ],
+         [78,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 78,   1, 89, 2, 99, 1 ],
+         [79, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 79,   1, 90, 2, 100, 1 ],
+         [80, 80, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [81,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 81,   1, 92, 1 ],
+         [82,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 82,   1, 93, 1 ],
+         [83,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 83,   1, 94, 1 ],
+         [84,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 84,   1, 95, 1 ],
+         [85,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 85,   1, 96, 1 ],
+         [86,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 86,   1, 97, 1 ],
+         [87,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 87,   1, 98, 1 ],
+         [88,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 88,   1, 99, 1 ],
+         [89, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 89,   1, 100, 1 ],
+         [90, 90, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [91,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 91,   1 ],
+         [92,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 92,   1 ],
+         [93,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 93,   1 ],
+         [94,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 94,   1 ],
+         [95,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 95,   1 ],
+         [96,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 96,   1 ],
+         [97,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 97,   1 ],
+         [98,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 98,   1 ],
+         [99, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 99,   1 ],
+         [100, 100, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [101,  1, 10, 11, 9, 21, 8, 31, 7, 41, 6, 51, 5, 61, 4, 71, 3, 81, 2, 91, 1 ] ] ):
+
+m := matrix(101, 101, 0):
+
+fill :=
+   proc() global m, w; local i, j;
+   for i from 1 to 101 do
+      for j from 1 to 10 do
+         m[i, w[i, 2*j]] := w[i, 2*j+1]
+      od
+   od
+   end:
+
+fill():
+# P
+det(m):
+# Q
+charpoly(m, lambda):
+# T
+ihermite(m):
+# W1
+ismith(m):
+
+mm := matrix(101, 101, (i, j) -> m[i, j] mod 181):
+# Pp
+Det(mm) mod 181:
+# Qp
+charpoly(mm, lambda) mod 181:
+
+m2 := matrix(101, 101, (i, j) -> m[i, j]):
+
+fill2 :=
+   proc() global m2; local a, i, j;
+   for i from 1 to 101 do
+      a := m2[i, 1];
+      for j from 1 to 100 do
+         m2[i, j] := m2[i, j+1]
+      od;
+      m2[i, 101] := a
+   od
+   end:
+
+fill3 :=
+   proc() global m, m2; local i, j;
+   for i from 1 to 101 do
+      for j from 1 to 101 do
+         if m[i, j] <> 0 then
+            m2[i, j] := m[i, j]
+         fi
+      od
+   od
+   end:
+
+fill2():
+fill3():
+# P'
+det(m2):
+# Q'
+charpoly(m2, lambda):
+
+mm2 := matrix(101, 101, (i, j) -> m2[i, j] mod 181):
+# P'p
+Det(mm2) mod 181:
+# Q'p
+charpoly(mm2, lambda) mod 181:
+
+d := 'd':
+w := 'w':
+m := 'm':
+mm := 'mm':
+m2 := 'm2':
+mm2 := 'mm2':
+
+# -----------------------------------------------------------------------------
+# S and U
+
+d := matrix([[-517,-540,-90,-353,-1086,-1315,-187,168,-317,-1426,-754,-83,542,-215,538,-1471,-885,-925,373,1344],
+       [ 1210,-716,-1241,-444,50,168,1162,-233,1325,185,769,519,1187,760,1332,849,-795,-956,-956,461],
+       [ -500,1003,-1447,-180,678,-195,446,1447,-342,141,-779,294,879,-119,86,-888,746,911,1209,-85],
+       [ 294,-967,1224,842,1120,803,584,-325,-1257,-1497,50,-343,1088,-293,1491,-841,421,-880,-678,-758],
+       [   -793,-193,290,-1254,14,-713,-1359,-1255,1424,517,785,1157,-640,-873,851,611,669,1450,105,918],
+       [   -1369,515,289,1231,-1206,-991,1342,899,851,-1355,505,-1462,268,376,414,1099,-1297,97,-565,751],
+       [   178,548,1170,-744,130,-1238,111,-447,-788,-285,374,-293,-424,-1364,-394,899,-1031,-524,403,-436],
+       [   557,-414,-130,311,-1346,-1439,-293,1341,420,-775,-999,-1457,-1183,-819,303,-661,407,177,-327,820],
+       [   539,-64,-613,1164,-827,931,1361,1050,1260,362,-977,-634,1105,-1172,653,-658,-1426,-264,507,-272],
+       [   392,253,92,895,-487,619,1286,-124,-743,-904,824,180,511,-57,1362,642,-14,782,386,-396],
+       [   -685,-934,483,-659,-13,-232,861,1076,-950,-671,1414,-769,260,28,232,-1037,636,-1180,1116,1310],
+       [ 1319,-276,-936,-1149,873,196,-1488,-626,-150,-1172,-1319,-92,-1163,659,345,1036,-265,-587,-959,-986],
+       [   -81,1015,1062,-1162,907,-555,-51,712,-706,277,-300,1061,-1067,449,-1453,-1296,3,1034,-238,383],
+       [   1150,-460,-1073,-907,255,-1407,-872,-1433,-282,705,925,-263,1367,740,40,1425,88,-418,-86,1175],
+       [   -1491,791,-1476,1150,-496,-809,-781,98,715,1372,157,-397,1460,732,576,1265,-133,1083,-945,95],
+       [-1302,1271,-371,66,-468,484,-217,175,-1254,1274,267,-609,-1161,-1497,-607,-104,-1418,-444,-1403,1259],
+       [   -1015,1351,893,557,-631,1172,1308,-1196,996,104,972,346,-810,198,-690,52,-1137,1373,-708,662],
+       [   627,-266,-478,1109,-874,1399,735,874,-46,-802,962,1494,1193,-742,524,969,-668,-758,-1346,1207],
+       [   -705,1356,-123,-100,-1343,-603,-756,-643,-637,61,879,15,-1009,244,89,-51,-257,-1289,511,-1093],
+       [   599,1079,-976,1486,852,-685,-378,-386,1333,814,1483,-1171,-383,845,729,244,304,533,810,-724  ]]):
+# S
+ihermite(d):
+# U
+ismith(d):
+
+d := 'd':
+
+# -----------------------------------------------------------------------------
+# V
+
+z:=matrix([[-271,3050530,-91160,38029376,1055567244,63951178,124789174,170725207,4044,-85971,-48175890,-38362416,-49920,257920,169561,-3176995,-3598707917,-10143059,545091351,99792,-63663280,720,69990947,16103771108,50083241,-47547320,-47512696,-9227925,27813563,63397407,-2381,0,-47589601,-266269036,63730092,0,5374463054,-3011287,467631761,-81916066,15847356,-940211231,-13331724,-947172331,951195982,-4,-20465309,266303389,179984610,-27889228,0,-141306,0,47620312,6339290,-3760844920,237736450,-5367924084,-5705683,-316964281],[
+2757370121490,457951842784171126,-11432883738378425,91604174117689940,339054834861577,-212532345648426370,-65336098012662954,-5968542464042680,-45794581087459480,11463200216306283,-2956449373755937,-1504159337629804,8275966333767,-42759159391123,-64343249559304656,-1035021376169,7860479797346583041,-37267218480864546,1391147172952407311,-16551932269783,13093140052924,-8586096137421138,15850620244785315,-21393712629906709,11712344442059523,-15011942695704,-20529253584856,-13802957696365932,7304515088011017,20015877333319,172415504932,26140517595,-14736108751419,-86272580897226,-26196786401376,-30576,-7165403851265553,729156214858397,-6443306085498693,-24872828981571000,11208049756860,1896179180284035500,-3018960530666876,1907854124737481800,-12892644111455193,-2331025,-5889952115597560,8268452233594429,55325032265039919,2898523391812623,-14367997800,53142828853474095,100408404444,-8261609022559,-1062442854994,7584716721138473025,75059713478590,7131237543046127,2920066095977632,391928739735373504],[
+-3267359936,179801963984,-243890431,21562148592,493286231620,-105395969952,-327914099733,191487729710,552076980,42999923779,92304586274,-23011958298,4204848,-21727568,-32962303162,-43551537030,-17406529628145,68965206267,435702881133,39887760,-16946929730,-191381652,-199819766729,8233244048694,-355944294348,-22539268632,-22542206744,288376296006,37855573770,30038912120,-14234355212,69567672870,-10421001070,-123549534056,16893013912,0,2767664045802,-18246288720,547114279561,573878495536,677771672,-4095787985793,65924510164,-4397208069209,1098463884816,-8050308,140808709718,-44204045920,-1381653021846,-107676720130,0,26913542779,-47328904296,97240889894,15358191328,-16383671099544,112696341840,-2752322735666,-69506578451,-473100895679],[
+193095994314,-965836827965994884,24147080688987747,-193158564788070701,248751918742572,-11000649124399056232,-41130989602113808527,13855538109267808938,96583810844352852,-24144909581610774,6875654123138448033,3398755110928168862,592614141747,-3061839734847,-3298992269248380108,-747837292889,-1051602199206696697641,6948102499084301763,-4696374093566685129,-1185184700727,-12527629174906,18109491908327766,-37054352444265443349,62431720020868024611,-27502654844688194178,-11107478857662,-11502554961210,27715326954517095750,6854111889568568493,14915694696400,12191457093,92756883699,-10853111844168,-62800425443262,11589274094668,60492,20836617151666823997,-1718917430013580250,41490370121762571891,56569681864678207188,4163420387974,-235277162369434592676,7057971978358605996,-262779831702994292682,82980743177894385202,-7995968,13855503341398498134,-17185307539527672,-110861269679340575382,-6875674391651128634,-1028851200,2750166339440266209,-114247935864,9021794287690,26046181834003292,-941108649477730374736,55537361940990,-20810573340289388221,-6869156901430325283,-2128878978332357349],[
+-60317217603696,4417783801537898160,-110459116449179288,883865736504522704,6682510706774829,-9984560399992658996,-29221590861480510400,9534333436026842128,-441779691887380212,110446715840002270,4732023397946460449,2338066099457896408,-597791911592,3088590459256,-3000866407224791040,-9291599516498,-641265937473198570596,4400205807083587296,12197249221856693808,1225273371048,-170879003950440,-82839731034178080,-25496821495480185401,43064261877129257135,-18927520379693017664,-306665205662732,-306266855728652,19047806853716143850,4829684373329790692,408959573372440,-302354460178,1017089869504896,-174562823202120,-1669376437942056,177904019101088,-2896560,14372902975597372621,-1182903425724033236,28677249066636987360,38915907206396144864,-33467932287531,-141942391191570152636,4856918879380351328,-160869017169323142856,57354541052286765244,-4940355964,9533799724062548464,79063756465404436,-76194881919814841612,-4731430323528037308,1037836800,2496109745963039064,-677552366289136,1567303061587996,18146464366988536,-567769564772076099700,1532065330208492,-14354754120091598501,-4727094668581602148,2878081149019550096],[
+-264326293322,-54439031711690230,1360566937114304,-10889880349917477,-102329110664164,470549105985851301,1612795118941858676,-537707669161871297,5442684142108188,-1363813423258423,-266817688323576038,-131880415891253456,-21927772344,113293489560,141234983283688964,3462864112169,39320411425080612074,-262740693945457615,-96820844277465602,43803807328,7052915349616,1020455495351514,1437932452472475138,-2424197146684954902,1067291079282520763,4581338044421,4595965801369,-1075136792767566410,-268037680893047722,-6112553859761,1034790291135,-4415217413256,5231176176525,25884188394100,-6655809642838,4656,-809079746997844358,66706004794096990,-1612453750809245203,-2195124049822536776,-2161207570534,8769617890124828608,-273893673516606872,9836912538848214261,-3224909257538072130,8960138,-537687701733349709,-988540625716145,4300540216314077147,266829909578574784,38054640,-117639171485653272,2923288727808,-8170763755099,-1013544013178020,35078471598832658294,-22906688970655,808066290695740834,266569963270088648,4085503839984104],[
+24963272025794,4886381485163062104,-122115958622687877,977469255614298534,9356157609500058,-42343129013384558554,-145149130497772457682,48393655389315630534,-488528342695861056,122420770758348271,24013576928168364882,11869211557932653888,5522923724688,-28535105723472,-12709249683614084600,-311730669676230,-3539053597094368968052,23647647425095525695,8674093385083624136,-11042673819552,-629180742335160,-91594598777464932,-129413874834646778912,218179960836361618656,-96056185648837552266,-418810170526998,-422492949924126,96762376670054251796,24123099779210645346,558782847079162,-92932949058948,397369561109040,-477108570919674,-2366858678314192,587822796118236,-419040,72817906487078077446,-6003540947056467480,145120401071972169107,197561179399410015852,199308854210260,-789318115689445582936,24650421954633160746,-885374638704335833198,290240957598155721904,-559255866,48391891920963128766,88773332147446648,-387048832098219200858,-24014701291005392256,-9587073600,10585956974746006109,-263055291119616,731753200079688,91223273596876640,-3157272466203429359398,2094050739996714,-72726705305172172390,-23991296090559590736,-379165080103917814],[
+20389824,-5365775181359208,134144500636832,-1073154962048848,1938587364,2548744110993598,972547380127033,-716146423,536577523716528,-134144270250088,-221957540,-342725040,62899200,-324979200,771330380229276,-5839764,-87040567673949520,402433155395656,-16289008525183548,-125798708,139924848,100608288580800,4504667076,-9463530468,125716220,-85384208,-127317008,23959679905926,-119797645255624,113859984,1310400,0,6396877956,-494523792,-239160432,336,-3349176628,-10038154,-134146535179661,9580389505096,74367048,-21089420056737720,-116150160,-21089420156881848,-268293126306934,24948,1453145,-95841505071732,-95837962165506,-165467932,-109200,-637185964093826,-1294894608,-13046241978,56929992,-84357680226975828,426921040,3154510156,-1068760,-4592052720031238],[
+14563551616826176,2729010776404609171617,-68183438768434538836,545903604398227196645,4430633900408259586,-18105321572963543109846,-61084925650482747562708,20325149877300410393327,-272854070520316125071,68356278546144117768,10085618274689543529717,4984964169101449159434,14556597907912092,-75209089111739340,-5435109417611382291676,-132449026062594874,-1475432407312552383025909,9881225769574594044988,5697763874705355965914,-29111868620420540,-244886455176586330,-51157689114971773512,-54353496392117907797947,91642873992725119909595,-40343429593178569156265,-198084140604368515,-207788887889671075,40637070381773833497130,10146780892033665992379,264267285381603088,-38774313554360760,166896278130077172,-222166717182456169,-1121573483124461288,208140873043827908,-221198160,30585916583017379336833,-2521480912855199601730,60966918090071354231789,82974192580069553909904,100281941921537325,-328855819378514814381497,10353114455025874681552,-369199445994056357709964,121933892549557358237280,-237282122625,20324525454680413883891,49503451400690864883,-162547830698834615510428,-10086176164588689686610,-25271310729600,4526418181432508251546,-110309536665691704,295063907792963018,38328435521838554036,-1315423278961132758721763,990420661465476647,-30547646373885558020005,-10076310072033889876263,419104997529324701131],[
+-4815018498338,1722801698588275332728,-43070075671336609361,344558495216457138058,-50870882694372848,-825004715606801158638,-336308267811706869626,8057566612987193697,-172280158642085093894,43070076547255238874,4004770238612359848,1980185400356943236,-19268849450469,99555721998585,-249653988460990473388,82005939881066,27343428619829050829082,-125207242668994108067,5228896082157043152362,38536942977573,2971265908756706,-32302530155093095548,-21573976351947545838,35576423252837437105,-16012088692051234874,2291020178065106,2303799445367524,8438524810586966928,42464702429189493747,-3054699581756774,-23897936812542,113392901104749,205214648761850,12833597355258664,-2946315359354782,-107927304,11873781158885617820,-1000448527958817495,67214465184411942320,29856694351675116122,-773653174459896,6636518443345445161167,4109135643425312679,6620509226052818788803,134428193975296141092,-7303106224,8066405532883470429,30759134171042820782,-33761454322548285327,-4001078166398684583,33453193800,206250404573029423732,340540971725772,2035334075005282,14883259403598448,26546073772517515253092,-11455093496706654,-11858820824197934940,-3998306254135371283,1473636067680100299158],[
+-56448,-429408,0,84672,3640896,-32256,1126440,27216,42336,-7056,211681,-564478,0,0,56448,0,-91058400,0,513791,-9072,0,504,-27813,54524457,42332,-169344,-169344,-140688,-2160,225792,0,-36,-41616,-903168,9072,0,18287715,0,-142632,-144,-69048,-22711680,4,-22881024,-285264,1512,0,901008,526464,211680,0,-56448,-144,95328,112896,-90848232,846720,-18174819,-1,-5625144],[
+-1853480315180,18386080659909470,-459924002690002,3684332123686547,152049329562596,-8737640755507112,-3310819906301532,6860760057454,-1838656017025296,459867391633952,14631153435703,-14792627032279,-215621458,1114049690,-2642708046629656,-97612762022,296511960315463822,-1379774832661658,55781710910959602,755056234,-1953095807248,-344942722334172,60012170311254,2366458126862793,-33696120053938,-7024398876682,-7024255816714,-85820654608760,410468739083398,9365864143440,-5205782,27432784662741,-2904524873466,-37853845152176,2289575361396,876,793491679380831,-97671346940,474758389084500,-32878838293224,-1828918563778,71829654154184460,-1159368412840,71822645854980766,950005124005612,-53317696,-7963143086,311589544536106,235097880431978,6071880361546,374400,2182784308563970,-18284075438438,41870559342006,4671440768064,287318616670055536,35121994462610,-788819375992731,-3169636320,15626214678424374],[
+19468397028658,-4899307034943057156,122454765873750765,-979749054857746419,-2871899088097097,2327308827126437238,889987579415385050,-1210321177154992,489808914276165251,-122734077204156086,-582324146739984,105499446712618,56671131253,-292800904225,704322758300600624,284372254084320,-79346165593807629402,366908458227152475,-14872579203816072976,-118056224873,97370479116894,91840996370291862,1535647258903846,-48501069285829860,2241072019306102,131206423925633,131169475051113,20018576219437720,-109731084481942050,-174941906432830,93172946439929,-379837714555149,93330165059436,719181284789452,-97455488301116,419040,-16306535846557178,118730006309451,-125925159563078131,4997792326976396,-3381603715936,-19225947116606343663,-442072855095480,-19223993813966460342,-251874680636431411,798253789,-917954985578380,-87380426442485399,-78838396784810179,705696051707073,-99684000,-581830109622748757,252049280538252,-600929958860615,-87523961627030,-76903785016416268441,-656032119926353,16218785199397820,455493111198675,-4189072557697867706],[
+74152870205036,-74817529059047670,1877410922467335,-14409349807402888,11228306729457580,-3823081394777619874,-13894553146513213574,4669113431768180256,7454550810422352,-1876241629478631,2314815054828026455,1142786253503525894,196727574492,-1016425838467,-1147162969526656142,-40242656267478,-350382043176334498696,2321396547916242034,-815963221403386985,-390816432946,-960582509234704,1408510966125060,-12476728051014153035,21197903155594118225,-9262596905343393976,-498738403768064,-498869532407744,9333833800837697632,2314089341733516359,665020160234548,2612976169122,147714997962810,-660237025208065,-2852406980037568,899033905095136,-506352,7075076442943082195,-578989178794946834,13986785783918005962,19051759979105473890,333001955488752,-78323127102581669320,2376582768007524636,-87586687482845278723,27973811647887388586,-436593108,4666416330055588896,1317637593314176,-37332450689897354950,-2316467378254365164,-341577600,956059750701299091,-98496893514104,358914698648364,9110960730275552,-313292508313267478092,2493450451426120,-7065966269124781083,-2313569776184954379,-519699868549154684],[
+1406106781996,-353856107498385802,8843955174135341,-70759653376940835,-207426180325656,168093775223238571,64315162962650998,-100174892765070,35375087732355540,-8868013729947692,-48389435291118,4357985443460,4082529477,-21093074457,50870920392701876,24424058442103,-5729664402178807290,26492611100570560,-1074178990998647364,-8497020285,7032715985542,6632960758547526,146890379550892,-3558451321498811,187186121600357,9476536898083,9473886817637,1420024683473994,-7930165513339665,-12635375740899,8024503698153,-27432784695069,6743156191291,51943692354172,-7038850190840,30264,-1196946136747466,10158169423665,-9132882617713611,308849305481158,-292249239750,-1388340797346413229,-38883861784323,-1388174393978670428,-18267524775277706,56236102,-79058363178294,-6309860383623359,-5590935112691478,61185779453871,-7199400,-42023701490559644,18203146407732,-43405634419225,-6321354816596,-5553362892241105138,-47382684511137,1190608451712134,39229571359159,-302544116335712383],[
+12974379654392,-133301800075404861,3334449019423390,-26710166956271259,-1064204310738353,63348131606264856,24009367856910635,-48003530309195,13330515711462720,-3334052544434780,-102424624168450,103543031546673,1563263806,-8076901430,19160096694461860,682865623671,-2150190397991694970,10003365194373242,-404433911726547330,-5393227438,13663422165540,2500834732360644,-420072089357361,-16563089364724470,235879559123275,49164442729916,49163405545148,621280235834048,-2975961214940304,-65552582968232,37469030,-192029492639187,20330885017137,264941344737164,-16018864070384,-5844,-5553735244618968,683293333845,-3438230114088393,238352809973516,12804585758057,-520884348927692052,8113719490660,-520835291839043916,-6879876604882971,373244728,53041786117,-2263241535034846,-1727808242430431,-42506986319365,-2714400,-15825649592861578,127987417318562,-293098831393341,-32699199780514,-2083537396084012936,-245822214223780,5521029790844090,21433392576,-113319589778851318],[
+2124055937454,-10624205107625950122,265617887578858177,-2124744212668777703,2736271106168332,-121007140368389657432,-452440885623251894149,152410919201945975142,1062421919287881372,-265594005397725170,75632195354522928723,37386306220209857548,6518755555377,-33680237063477,-36288914961732192708,-8226210222163,-11567624191273663726142,76429127489927319393,-51660115029233558176,-13037031700317,-137803920944446,199204410991605426,-407597876886919877022,686748920229548290469,-302529203291570135958,-122182267434290,-126528104570758,304868596499688053378,75395230785254253423,164072641660400,134106027895,1020325720689,-119384230289048,-690804679875882,127482015066948,665412,229202788668335085927,-18908091730149382750,456394071339388508497,622266500511460283004,45797624267594,-2588048786063780529579,77637691761944665984,-2890578148732937229013,912788174956838679014,-87955648,152410536755383479498,-189038382934805672,-1219473966472746329714,-75632418308162414654,-11317363200,30251829733842937899,-1256727294504,99239737170990,286508000174036200,-10352195144255034162668,610910981350930,-228916306743183277043,-75560725915733578116,-23417668761655929439],[
+394112962032,65378673085637459,-1632193538889816,13077705542424810,48409350149521,-31037242241640490,-11834385000980895,-11230461101394,-6537781110941176,1636524593574257,-4803596781565,-8475356895128,1182316258560,-6108634002560,-9394482602881572,-147815853214,1059317745743035606,-4903114159463487,198497564306719064,-2364632513116,1871475865436,-1225778536382400,14114399730363,734479155984227,3005498134707,-2143320542458,-2931531381498,-288815536700882,1460089485670287,2857760536289,24631588669,0,-2104346933755,-12317884622040,-3743481256044,-4368,241526137494443,-221707147731,1599545912916860,-117906367416740,1601193974201,256656323254301008,-2660541740780,256653982936614466,3198229851447841,-324324,-18870798,1180439957185744,1171446447694505,-3473305311801,-2052632400,7760702380318182,16833629904,-1186073096149,1429017204946,1026625293017528356,10716602712300,-244826385328105,13885960,55873948057450399],[
+44478527576776,-481321561751178367,12285345077956500,-96070302452062025,5165549179199279,248084383664574734,151936456301464567,-22388234409331558,48149388706940788,-11791490348764896,-11024088525700497,-6097510507619236,130143890399700,-672410100402740,74852378549945402,-33105928729397,-6360000579984469268,25648613320958438,-1455614666839942288,-260288034008184,211553351484420,9034213682543940,58014525371567219,-16971367340322881,42307374290219556,-228475089175887,-315237733578767,-39777099025810246,-21194530249626437,304633289605626,-2992852911094,-21426790387860,-217387060814132,-1315042638406964,-417614254744828,0,-6062031468640365,2597932937158444,-79246348370264304,-85559349377838882,176446319042811,-1571873489395145544,-11053859606605308,-1530170689771144783,-158588966375208193,41630784,-21135391626941974,-7206960918361665,160960214103877519,10087187900562157,-225944175600,-61867668277664489,14284522240560,-182357699585621,112497548771790,-6287494168888308000,1142375445880535,5653953455710491,10478282688847284,-418350492792298547],[
+-13189448064,64389119887659703,-1609805379767648,12877239474532676,-16536662040962,733376609527256524,2742065982638100118,-923702535857324204,-6438920564950524,1609660638397390,-458376939483701407,-226583679602924222,-39507883152,204124063120,219932818265459424,49776529710,70106812543389767684,-463206833272295344,313091599249520308,79012978584,833588677214,-1207299460561728,2470290180153725589,-4162113943236311419,1833510316160368870,738360589300,764699178680,-1847688463632923908,-456940792574497501,-991528979424,-812774744,-12912,722114410192,4174975333464,-771031420952,-4032,-1389107567077488209,114594495254984968,-2766024663116154728,-3771312124311712592,-277560583651,15685143973895815596,-470531466175019196,17518655260661874084,-5532049521460184034,513719,-923700222759924980,1145686521393201,7390751291732958808,458378293249908174,68590080,-183344422945054224,3494011680,-591861232680,-1736410696917084,62740575895582748665,-3691800790012,1387371314412103821,457943793428705557,141925219403210320],[
+476854456466,-4726198722451337528,118123978088630114,-944932284541871657,1224829689758166,-1403290230162527872,-12291440302204658378,4410563748895479877,472493464669970124,-118403564391136253,2188583340479163649,1081685722452993704,239723906522,-1238573510666,-415096933470945932,276920397220827,-406422830808562776457,2542985086022011969,-14908561908661038620,-478376270788,-74132264873214,88592783620650756,-11794361647240191494,19890584829319309293,-8754510831479040161,-55102171158651,-55261168540959,8841824616274930562,2083201451478456742,73503197860297,93563643770783,79864335275010,-50253696827163,-309094927790428,70387232769804,367632,6638470180033565059,-547157504003634165,13096887768633599137,18014615580445654870,15983420625538,-92260477273092433393,2246568744639567984,-101014990320400983236,26193793990425460444,-155969016,4410352586955405457,-84157879293745937,-35367370542606052562,-2188369988747698074,-417491880,350836012017102661,-54335199923656,122230787857892,8328172885949260,-369041905627075968436,275467088962021,-6630142966042735007,-2186542078564683546,-4459731089747094013],[
+-59346457650932,-99910284929280587,2491896795009284,-20469253300799543,-10010641657650469,3739338305396725990,13325050387119747229,-4466956574976319814,10011606655333460,-2498561230183308,-2214855677754306043,-1093524816549646594,-186248034780,962280600332,1122208169352873626,41048316639659,332427191439782345080,-2208161496977100614,260619615007335362,382288543536,830147214550820,1868373561914130,11937463709379882773,-20270257815138346493,8862231804288254906,445290372804165,445414534416981,-8929362401218817290,-2217843401473702197,-593754596022764,-169569112538,-189925975867122,576219795279430,2541246479998042,-778048360152108,573768,-6765447511100261045,553950923918026348,-13385587185104846386,-18227584868193419074,-281963597172171,74256759705744920212,-2273880391578287562,83119757893473068223,-26771381844932477305,-1636032046,-4464622429908635474,-4059820955841305,35715218562621814987,2216233540771631235,323339640,-935079566975555137,126247118658700,-408764363626205,-8695743107130242,297027038818480944254,-2226183265933077,6756752512964197241,2213537751130525912,349119966422761407],[
+-520260011,-4599244693557368,114982030571904,-919839653155050,203587080667,3458063720966434,5422888879149385,-1539381098897070,459923865793176,-114979771029504,-764039632336809,-377665351987466,-11389530,58845890,1043165787309449,-511841519,40494902590551860,-419091430016464,-13766138628520817,23142294,-10273067420,86235675992998,4117563845361103,-6933998601878055,3056143746406850,-9228571638,-9220783798,-3058283392865949,-866596862890927,12293062470,-410152,10118908392,-2509601724,-51214694522,10290917556,288,-2314228420343207,191008598019472,-4727337608752202,-6276775469347386,1902672226,7642480510875210,-784293435866908,10698621623017230,-9454672645441069,-40509,-1539411971576298,-82238953406642,12233115027807261,764033792992513,18720,-864514038578236,-7855841760,11216395653,-2895598594540,30569922043541349,46430406670,2311332867306637,763310998215842,-3791249788888835],[
+737414793284282,122422164517967934483,-3056300453453192591,24488125432797032955,90699136542577415,-60174470678692927398,-29573194287286175858,2465657749507523393,-12242055012160111176,3064402889193548819,1225156046055649179,594155622121173508,2213104349939273,-11434372474685069,-18208339501562881160,-275392639889199,1797653825230551112047,-7946985170226415158,371372117023507501212,-4426208625095765,3499178554638428,-2295281602119058914,-6624594782439068831,12581597336553471871,-4930968681146156999,-4015777237197748,-5491180132702802,4432524576436108430,3968016309548797468,5354388316446247,46603245058578,5870232501423,-3942071212090265,-23078362766044720,-7003269132129952,-9020892,4192370569800538413,-308951768811464721,10445861272618440808,9931581411019688360,2997761343895469,439045811642394220156,1261882009342047520,434104843426546127906,20890110049148244601,-618099600,2486667554037985289,2210547006674444710,-17699814203024961425,-1240646906458812435,-3842195067360,15046223509205992227,27578083294512,-2210565630181355,7357484422657062,1756183246588599286144,20078497964362910,-4193865502786631139,-1232976257258818928,104390465411449173507],[
+3798311548760,-3893680978661525418,97348478770571456,-778803895048766890,-1478619450716420,9654009452902119612,28833655205927513520,-9435493730015311466,389368592536813884,-97334381870061868,-4682685477475817528,-2314426814641727208,595797207456,-3078284311168,2901084906631469800,1319411315252,642335984062709446452,-4390634122645734496,-10619643139981379066,-1210936366080,77269367118984,73006810163690760,25235288569971331248,-42539345833903375524,18730848998011344566,66909849911766,66512800492886,-18853177207382996664,-4769086121702804810,-89285041572096,-795059887824,-139831873173660,60614372784770,371958530139800,-75605265738600,2928624,-14197585291154515924,1170672820986209516,-28368210017607379006,-38514561690731193416,-13742053318726,142340001460005282620,-4806774258615921568,161070773336900762978,-56736439551153085888,3236852702,-9435266914217194610,-70146917970758502,75413017507818682728,4682693158508345252,-1034354880,-2413514188636042600,92840464246864,-224105295134236,-17801411969299160,569360005806877280658,-333306953692494,14179781496029566124,4678237273194438580,-2442848815490205726],[
+-407402065938,-1853770758584,2819924313,-3376696852513,-61655688933042,19437384675912813,70058399663566959,-23521048983912812,316101024144,-53317211502,-11660004673853924,-5755699519321340,-986617671,5097524835,5833041952968378,264000587121,1758967264530786197,-11665211364469281,2958232484022438,1958718477,5276007034728,27800334,62847611387862186,-106858333027169598,46658346191474558,2738610669272,2739268415192,-47016129208031604,-11665290583734449,-3651660325842,-20952003,-811620867993,3626464295226,15662895075888,-4937977152724,2436,-35665486759146102,2916568911459915,-70468556783751861,-95969142444150362,-1829567414878,393081312354718868,-11971321593954912,439744952235148264,-140938432240389444,2403582,-23506235052510656,-14518301123154,188048674347535047,11669123762598160,1712880,-4860936192985038,541091593456,-1972148465561,-46046363607552,1572325249416471890,-13691903022340,35619444342018066,11654164258740108,2301583669821966],[
+5296632009719,-5344109286909938,134100781517775,-1029239089945762,802027394987996,-273077242124735979,-992468081212115588,333508103140848098,532467923421252,-134017261671833,165343932247959574,81627589323832844,14051720115,-72600556547,-81940212096290621,-2874491652386,-25027288820602439298,165814039090631038,-58283084405950185,-27915214013,-68613361075728,100607927517306,-891194860450521789,1514136023551428728,-661614064410997611,-35624418948116,-35633785106402,666702414267770009,165292096115841206,47501769689165,186641142878,10551071282037,-47160065391009,-203744739080740,64217032796064,-36168,505362631059361038,-41356369929300480,999056129802278747,1360839998097344476,23785932868206,-5594509084524927123,169755911932467236,-6256191968870112117,1998129408260914482,-31143014,333315452042651138,94118483626345,-2666603619667076753,-165461955726005172,-24398400,68289982182132084,-7035485602516,25637077695873,650782944924926,-22378036331166950758,178104839924530,-504711904321435888,-165254984042344351,-37121421024058707],[
+407429908,-22997693640455510,574905000609888,-4599212312501138,657305979723,10924141317047252,4171498983637479,-1017801764015,2299617802367304,-575245647638584,-591572281401,-307950654912,268282368,-1386125568,3305979881352236,339592376221,-372954231152843816,1724150098455252,-69813912550238691,-537264512,-39626293308,431178380144244,3211153209809,4977746023725,2267489778455,-29568738430,-29745692542,100413346908358,-513851567567857,39426429432,113881735836,-6324318918,-2489120087,-165917043236,39203544988,1440,1597886860301,137233239025,-577984552150907,36424278611812,6555959174,-90366099625461048,-619882940148,-90363875553814054,-1155959287155939,215411,-1135412160323,-410488554944295,-401543451273223,878770839249,-468000,-2731028812104812,-1337552256,-34391809389,2976103326,-361464394284406163,147843593214,-1595983884943,552959943744,-19680388580832806],[
+-18090409096,1912925624513945908,-47823215103514048,382583116884501567,-55907303576340,-962841803836555590,-542059629303548422,65513963639201811,-191292564022540196,47823072546278529,32521314825554174,16075801604077876,-19674912288,101653846320,-291242651964157598,170282514353,26131458540524929034,-110950382974699231,5798748666663974476,37518815688,3323018231632,-35867358187557696,-175254168335435762,294416125461696690,-130077261000413227,2516955825001,2529999277993,122504014334857674,75223015048519076,-3355513168473,-371046969,6738545400,-17591472397,14107635324884,-3290170334724,-138528,98261772801768702,-8129490580495783,244120748376636761,264099702728353982,-879308210544,6423825548467780468,33381454836468840,6293751454182544521,488240672557285278,296958816,65523834120929607,34158578415683657,-490023847506076998,-32517037579025172,34159320,240709575938981229,507135309776,2624885476180,122985612598328,25695302193574163056,-12593398070091,-98138708486476486,-32487482057519260,1630940363209221499],[
+-13959099316,-3241101352195,16287754292,-74290644193,1864384891591,161277643687238,580688299451573,-194434086115736,75693876264,-577091928343,-96558463069597,-47935415486560,-8600270,44598022,48391393492954,556130985358,14501994089115216,-96526839457015,18614997450214,-2227450810,-57949844404,12352359708,520563960644109,-846447386008083,386323651386340,-85300308455,-85292262887,-389516596462330,-95136979363678,113735246657,186341982851,-9051210,-361971323988,-466520839408,60208918312,0,-282579956705947,24138964238704,-582692484516742,-794491802852258,-9518710829,3239600720440672,-99206366882596,3625818422356149,-1165370478379093,374154552,-194614714057088,1776119208771,1558174289552905,97152811469325,14040,-40327808449441,61611954264,683493972093,-327342147722,12958409409222856,426501531061,282252652877489,96471384313990,15813567332537],[
+-282160972582,-416516159082492,9744619315583,-77015013075024,30383330770234,1794902186076616,5878173247777745,-1943806405779470,39163779142704,-15356954945188,-964461173007262,-480493697093692,-85999877,445966057,539151521398936,5553670806973,138655471484048919,-936523889932951,-982426508575790,-22249597231,-732274580344,7309828540170,5210259958538898,-8281787128712946,3860646571896004,-1395294943388,-1395214487900,-3893737865770518,-959944258656527,1860408248786,1863419744549,2110123692765,-3843381494940,-7587986701840,780722190340,192,-2764544375954518,241382004254380,-5835347138579233,-7944239393019128,-235209749838,30852895520389276,-992153423123344,34714533130340784,-11670511176580576,3737448960,-1946148583971290,9619449600240,15567714607964562,971994005634886,140400,-448933928975077,-790689466476,10054240282170,-2913807522656,123411647360255344,6976474604800,2761630951623662,964713367300276,-178955061760267],[
+-949949499836,883766321025786400,-22095674582510154,176769532404942196,372510543754151,-2370917038427320730,-7192171401000876507,2358876672973490744,-88376375361155613,22093008298429662,1170672638126340390,578607303636896310,-147894772386,764122675506,-712383620014239880,-1192370958235,-162038579772975549201,1104384225896384620,2382746744068787976,300626920194,-19481794173122,-16570620164114784,-6308829755818382190,10634891574965884824,-4682717701369921308,-16856130239595,-16757569979403,4713700287106091178,1190271009290449237,22492819570090,-85906495128,34972092607272,-15172282866066,-93709884157298,19064104553000,-726540,3549414869399268042,-292668561302987833,7089820662466854564,9628811743185606800,3488111770698,-35937434100709439423,1201695055121975392,-40620132661703300790,14179646244679879643,-809140279,2358819480661249904,15935768935153061,-18854877962208998061,-1170675609052863701,256763520,592732268359436674,-23241181297884,55952476847723,4450373495731798,-143749736405096001733,83970076845195,-3544963904332735472,-1169560724828713669,533981831927727903],[
+1079992099627500,189256279197313441006,-4730046664119872108,37858514285244366694,369369950983647321,-1748389546391661492784,-6012500972678017326945,2005406807865596590305,-18921125009125004614,4741762870582080765,995106950109369662441,491855221386225275378,-16017792225300,82758576542100,-524761658642469428736,-12835436284143628,-146870535687002776806919,980935559186005324817,319273561450123467276,32477357833476,-26453578050077136,-3547523639131606358,-5362833404636168882712,9040953771200725228611,-3980504253292229206657,-16524646913344794,-16514002219542218,4009834707642908822356,999351411979249026456,22048165441522949,-3839009504931301,14747756494232796,-19190174172604861,-93466292843747334,25099347001391788,-8889408,3017433071242475782935,-248782786165701651917,6013380426135193812355,8186842572959857677060,8084129330310146,-32760789268675591389233,1021498065678249769194,-36741308233336665077949,12026767471004130982003,-74887533879,2005331509825868284353,3439460194941302989,-16039307080696266028015,-995153306327181576583,27863487600,437104477555491129700,-9766776299554304,27895985996806155,3779617519083718350,-131043157216799974408973,82626816380136724,-3013653389652636937135,-994183722672497370545,-27012541317882581576],[
+58247436075722,11401556787835284624,-284937236552750376,2280761595360235460,21831061139660476,-98800634359388836626,-338681304487396750528,112918529244110800874,-1139899465201910716,285648464842194158,56031679499178938328,27694826965923489720,12886821312624,-66581909675568,-29654915926886150402,-727371604700448,-8257791727104089273000,55177843992473902190,20239551246390532106,-25766269480896,-1468089237825888,-213720730302855636,-301965707949300062270,509086575715508024906,-224131099846512174510,-977224953530364,-985818104973156,225778878892677496450,56287232836277507518,1303828272884410,-216843547925508,927195642462096,-1113258545361906,-5522676935233330,1371587396288556,-977760,169908448613905223824,-14008262209840186998,338614269173411123894,460976085265211346972,465053958690432,-1841742270078799548396,57517651227292465114,-2065874157114285130280,677228901073525479280,-1299596172,112914414482005591394,207137798569756196,-903113941544292619960,-56034303011975988006,-22369838400,24700566273095095332,-613794791860992,1707433976417154,212854305558094676,-7366969088355046592292,4886124504829176,-169695645855623159804,-55979690878051438464,-884718553150588950],[
+404350291156,-4375651816007668,111684955252766,-873366385675225,46959542536888,2255405353570850,1381574991392745,-203641592371491,437721715487300,-107195649143109,-100274660096706,-55459444277708,1183126275606,-6112819090670,680504005105916,-300680670103,-57809803645475384,233113538983123,-13232849941994136,-2366254851204,1923211852544,82129215295854,527704945435010,-154790422277122,384835185938989,-2077046457207,-2865797768567,-361834387970582,-192733133681632,2769393809689,-27113640461,-194789003526,-1976246297397,-11954934233636,-3796492822518,0,-55278059821782,23631490390889,-720757496976695,-778270305338498,1604054117824,-14287885668464176,-100546815363160,-13908546616334587,-1442390172341806,378144,-192252113739231,-65517755660323,1464172255669970,91757663204204,-2054037960,-562456545030399,129859293096,-1657797243060,1022495982776,-57151544591350048,10385232286045,51568050701198,95312736093708,-3803175848054002],[
+690427989033,-132460561667237033024,3311517154735851257,-26491967974911903348,4033095561188974,62919040572146406363,24008980466313689700,618662966663362,13246056711664289820,-3311513314266327041,-192878250083172,-152574925752428,1553025898929,-8023967129589,19041213860029842249,-10304696270642,-2148713145077802644998,9934501326141797196,-402111569225092009411,-3105952962345,-236625335857466,2483635722202321902,384400987687295,60531042555062670,209570557307573,-181601682548636,-182631918228178,591425997519655067,-2957245061486233954,242140773556693,646854766320,-3628049301513,-21902518768133,-1017544138578780,234175832752120,8296728,20195122227583320,-10894606456176,-3309825513262547527,236166837043073128,62067024374400,-520620881740539737181,-56306486139940,-520620897372067068835,-6619592387866396972,554607454,-83862517149686,-2364949124283471319,-2365129566191429345,-105542212998630,-2696233800,-15729698339274738862,-29567963095836,-147182708324335,24663040707726,-2082483526939851957418,908007842559186,-20176671281673466,-18699560863721,-113361481681547451101],[
+4800,116548,44,36396,629460,49320,196236,167928,-3600,31532,-56556,-127056,24,-124,-6600,-33708,-18507240,5040,678192,-48,-56272,0,163860,9621252,23424,-27900,-29356,60216,5820,37200,-10296,0,-38380,-160080,52640,0,3234788,-3756,431552,40632,20100,-4623528,-30120,-4672912,877164,0,10008,160080,-77244,-69276,0,6300,0,22220,22056,-18494112,139500,-3212804,-2880,-1131900],[
+-38817728592,8828889464444015610,-220722456699445800,1765768328310142578,-269936761414266,-4193740685449641252,-1600268876405719566,-41757915176352,-882889036737966216,220722077290934892,12610399055334,10194010360128,-103514123880,534822972360,-1269153380820488448,812231333130,143218160110816695168,-662164228865347656,26801929338129217824,207019956360,15811087600680,-165541699630110960,-24873448514790,-4053651305319522,-13011441658452,12155376461694,12224045250174,-39421117656779700,197109003250295904,-16207515035784,-1972350072,101189006280,1494748206036,68102653814760,-15647818851120,-552960,-1352479667155530,778400273610,220608198922027716,-15742871960279328,-4139300339010,34700939086306000848,3554361323256,34700940981758426766,441212479576860942,-36685440,5185406973168,157630916693853864,157646632950645582,7349920761210,179712000,1048431049790159208,2064547008480,9589587557934,-1676619918036,138803756345260688832,-60776844296310,1351217103145974,1447814679936,7555880603814262314],[
+7420258826259336,1231795828660258674438,-30752093155573631936,246396321710445714517,912655376081875150,-605340381460842622856,-297102949319181512902,24655263224192259462,-123177958425944101164,30833624156424461441,12250998288742422404,5940564510832346764,22269375381953128,-115058439473412744,-183171750778317217674,-2771127911656741,18099259880579159852366,-80037882146581710621,3736717337969134299060,-44538750015476684,35210747160418968,-23094823593907206384,-66244295481034596620,125901907352520972628,-49309334572095623161,-40408546161377087,-55254796371191403,44291789164374690776,39849316275318063884,53878248196328855,468945423072895,58714130425368,-39666833877310703,-232224849508817124,-70470678955093436,-90715272,41951964214086406780,-3089543590183480839,104643880650781652262,99302151941467398294,30164953018943934,4420191658800988297720,12618508639809507336,4370781703427189277241,209271535489645905574,-6218615260,24866675232219913290,22242239782497777533,-176862422097390121322,-12406875197695469570,-38662110193200,151361316603187129551,277724368847832,-22244591193816468,73742042763620756,17680766635395365134460,202038848590628305,-41967299672941031792,-12329762419142615260,1050377617211353237384],[
+1550720992,360118234230,-1811405760,8240099418,-207538196730,-205626943324,-669546085702,185732982784,-8410214460,64119689912,100250903466,72321452256,57024,-312768,-62580676804,-61791176838,-9972304776836,96721104096,659033936296,249293184,6458285376,-1372484736,-561384461398,-2457978187782,-410922242260,9494973726,9494678814,443608304148,-57719140962,-12660295312,-20704683240,1005696,40236205420,51932672776,-6707872464,0,-811715155222,-24984312984,569980345660,833451930788,1051220234,-2129474809148,112633318456,-2528602369694,1138346064686,-41572980,205856732080,-197443920134,-1786481823258,-166258352910,0,52333538462,-6845772672,-75958388906,-3891118964,-8518624509692,-47474867334,807823372802,-100618980612,256062401358],[
+-1041359804124084,-204055038762146103030,5099586591667191360,-40819076555976228306,-392087730673689750,1777854596476220992896,6096051256857846360222,-2032533762198783157116,20400893583299293944,-5112310741891695774,-1008570334152019141590,-498507046199371908144,-210681090970272,1088518962099264,533619945298192488444,13090028192666328,148659259151864566620108,-993289177169055154026,-360750596962494794712,421229465994600,26459292708038712,3824980994859790248,5435383087157034938010,-9163545293876575394934,4034359918143910303326,17551469325734496,17691958256600112,-4064025068951252873856,-1013144011695411258438,-23417469131422722,3903627231367566,-16689521564315856,20000775477608562,99186462519945300,-24755955667260624,17521416,-3058347778183784796954,252148719961864700742,-6095028249955482499752,-8297571787655465927376,-8342149715480778,33155966173658312196096,-1035317787125860029420,37190340164978896900896,-12190063044507127511862,23386796544,-2032459494333314862276,-3707300895646207440,16256072234647432698342,1008617408397872790006,365709708000,-444470962364716305564,11048609258833800,-30755160875626626,-3831351840955451172,132623864839350525895680,-87757341897864708,3054517269067027191486,1007634452491267299072,16927388147109534858],[
+-92221215918280,-15298608666236718492,381933288101243348,-3060183103888139898,-11327967031795108,7262714182934514968,2769244219283053588,2628521713839012,1529840779350041832,-382946568544949006,1124337413331552,1983411162482392,-276662003943196,1429420353706508,2198308776023232196,34402862016290,-247880392442167097216,1147329016986196450,-46448427706823738120,553324006674244,-437919310170032,286832177513496888,-3304560581516752,-171868238951961600,-704475211841938,501545188043130,685986523452378,67584071010150376,-341660693727336280,-668726875655538,-5825908283030,-23610822276,492422625401314,2882429850083672,875968571092376,1022112,-56517125939192264,51803856599126,-374291952179544992,27592588365113300,-374677077702444,-60057588515680609896,622903969733408,-60057042087848447686,-748382203863566420,75937064,616360567260,-276222993648679362,-274123328659620172,812261581591164,480315981600,-1816004229249042010,-3923328854448,277504489229088,-334395480061656,-240230354065098914888,-2507725940217990,57289378475925392,-306921073320,-13074503669883819352],[
+-1622488479255,408275579801924760,-10204563684418095,81645753962708736,239341309175244,-193942399191697185,-74165627113687668,100861545701196,-40817408878765980,10227839613837555,48527109987870,-8793224678658,-4722585975,24400033875,-58693562273788695,-23697713412588,6612180130699727871,-30575704508320140,1239381608825279388,9818951025,-8114717837040,-7653416259348450,-127971459902178,4042019426805900,-186755618674455,-10934618255616,-10931539181526,-1668217115083773,9144267717880314,14579491688205,-7764412206600,31653213072975,-7780603523145,-59935873923972,8121820986600,-34920,1358966184962610,-9894192657378,10493766633775803,-416482744157856,281778576510,1602162176375021964,36839283756984,1601999400690201858,20989563521218866,-63345570,76496105514276,7281716107068177,6569876926550937,-58807775799864,8307000,48485841689044770,-21003630617340,50083408034475,7293976894230,6408648417996153426,54673091302830,-1351653317607300,-37957805456400,349089359727688785],[
+-6582892723692,70231608329962284,-1790255329337346,14016741115222479,-767965150584816,-36020959026058554,-21576838218551343,3038297868269517,-7025361108407004,1722850837776699,1510428597795750,843178974859908,-17746948047690,91692564913650,-10868182781620188,4801376740545,943319419062311496,-3841656573125973,212414310097714296,35493930595524,-23025060684384,-1318173905364210,-7934331022704798,1350354202078974,-5776474757717475,33970335186009,45801640798809,5402730145538658,2993066026209192,-45293758317687,406703427555,2921835052890,33585072223707,195500099102268,51512576121066,-288,503431886668794,-354181185411915,10884087191159817,11665756547610294,-26163710869584,232786913803648992,1511725028975016,227099685807701853,21779846296841130,-5693544,2883760137334353,1048740533851029,-21884696604451146,-1371803271264348,30810663000,8982489952371333,-1946779486776,24069358281024,-17242622027736,931147683977017512,-169851675930195,-449686716492018,-1429698229690260,61082077662402954],[
+1456355183329338,272898778023433343288,-6818286386358254778,54589900518846154305,443063458809438388,-1810531064973528707204,-6108492148234498379732,2032514987740784045582,-27285177090305554788,6835570364229620471,1008561827465671187610,498496416907634209436,1455659817747102,-7520909050446198,-543510611191053946464,-13244902815420231,-147543278034557448066948,988122749428104753845,569769406501923897558,-2911186913878746,-24488649588089328,-5115725793670604004,-5435349639205124785824,9164287400303409572120,-4034342959314547772257,-19808417156015391,-20778891902428143,4063707048445475236934,1014678037862181157046,26426732665675623,-3877431354920505,16689627813016098,-22216671777493463,-112157365665337248,20814091330222548,-22119672,3058591658645673005578,-252148091285720327469,6096691751546090561316,8297419262107431828758,10028195272429196,-32885590976227541691440,1035311445501669774018,-36919953637782150851587,12193389140034654722076,-23728548276,2032452545466706910690,4950304081189886015,-16254783110946174802958,-1008617616460805197134,-2527131119760,452641545063619013403,-11030954278992528,29506387688298526,3832843552594227300,-131542364049617516549324,99042081624430473,-3054764637732188329054,-1007631007203760979292,41908531711551387482],[
+580716461537648,109343696068601116612,-2732690617458983231,21872509892784181438,187944449925699238,-738046938981757001934,-2492973097854514367845,829636770442271766110,-10932103643993154776,2738984328882800550,411671416366395628279,203473713913670134118,108072072040185,-558372381435821,-221555003401836983066,-6445182942519711,-60257158228463445311611,403482491378609160635,226350984008663646205,-215909553397341,-12961198506492646,-2049669857528855814,-2218581069507012708479,3740759746981275564317,-1646725331440400559770,-8406285218461026,-8478350340708558,1658721385163037132532,414122112990870668403,11214711123194770,-1922767884903655,7457130780625269,-9734607819357748,-47566361644085920,12095615921360120,-7408704,1248485233035631720853,-102920992908220853072,2488508674852221836017,3386820197172848550196,4181550511095854,-13431233334083243925484,422589900211405814130,-15077966400162770063790,4977020553980027830128,-39727375896,829600483595779226546,1983605219078537714,-6634868475510582417178,-411695310276775137784,-187597541040,184515395740693521913,-4937995641128452,13830073747367908,1564680213374474628,-53724933407589995767960,42032285696469702,-1246920985110777249541,-411291495904534151329,15343527049040727381],[
+62694322875216,153628293256421152,-3833224569631684,31193530664154840,9751910014102336,-3380369232528078228,-11949195544559130672,4002158873517512836,-15379669703977920,3849032087927968,1984156967848004640,979528392703005520,166111310460,-858241798764,-1014587726981009760,-49523899019396,-296801518250033258812,1973465324403481596,-38363820667470952,-329753958612,-827684338335344,-2874526875410040,-10694428723668304264,18171821098565599776,-7939483967422827304,-433321783881728,-433432549039672,7999555110510967280,1988385253577038772,577792907371888,-2698462264524,143494569065412,-570067537927160,-2476885678390848,774932164205680,-452640,6065087821071018912,-496282690152112332,11994293765115504512,16329889920972001192,285610132349064,-66279745376107790520,2037094872519878048,-74220042389799068464,23988794395945099904,-409266248,3999834077040119596,5012396268390680,-31995802871678301836,-1985581119958152864,-288350400,845340525608093576,-95627763391248,334353175290164,7813284952755648,-265118981604095309272,2166401861637792,-6057275200564874848,-1983083949440483528,-259276035090553040],[
+4149953792015292,688437392612872413392,-17186997946910631780,137708239628699295222,509757281359305136,-326764684973081408696,-124408913766536986040,-187744579985426584,-68842835070062580504,17232596223379337918,-85066863476833068,-106292917375952344,12449787267768300,-64323900883469340,-98906658928615801368,-1548746227630494,11159811173070720692952,-51664277409501451798,2090188095394290770868,-24899574478841892,19706431199528640,-12907447988108137536,334479519087596904,7421064268391956616,169588293615148718,-22569478302900054,-30869336458371414,-3180205057764892420,15340261667701840220,30092635342643022,261958764439542,1062487002420,-22158962998850846,-129709031454368208,-39418643370415128,-45982560,2438804618898888820,6286761443098782,16635015906097582788,-1525255480317394468,16860455569428992,2703751974307599006736,-63416241899903292,2703865271967344191274,33260955275306027736,-3417517248,-69488666073724000,12430031855436970790,12891237012533038972,-2080629326525148,-21614214117600,81705826989028089822,176549798412720,-12487731873274772,14917116387818376,10815007897329669304192,112847397266113770,-2473686651628121092,34452875060655048,588359198586606304856],[
+-678209032883760,10592622209346546900,-264917017432459920,2121451282629824280,62309622062950296,-6010706955462196576,-5434863089812241652,1185920929566486012,-1059290285326053312,264896191758494280,591994145291745776,283642618954528904,-74553864744,385197087624,-1815983126032420944,-54265387705332,82660579430999692440,-207973158030370464,31995146946805501488,273188664456,-1115421917162544,-198687004534745136,-3138029666458528440,6296346922060492800,-2359794890569216988,-2870888201897592,-2870838895177848,2316068463550364664,823204033800220464,3827859521698296,495258244248,10526417988911232,-1366484238803940,-15534442736141136,1219771200355120,115200,2102921974288292280,-146750166144486204,3815597001170215068,4807922803845559440,-569044552027080,21688142536839826176,601663906711592880,19338161731518122568,7631472882675248484,-20445601680,1182261617013464172,183848168417005824,-9304440851963138940,-584734647803410812,129392640,1502168070319155600,-7015051703735728,16121917733206052,4139644602796728,86752570186209212304,14354220201159384,-2098782031418505600,-586221231200028672,8905845856095550416],[
+99785345448,623445276120,-2340,-574311017748,-14753776819320,-389725566628,-2889699116132,-1498598387884,-49856908176,-18118254,-649055528664,1747099510588,-2340,11700,-99786750984,24978072306,232420797120156,1992684,2200347498350,-22996296,499557161760,1277702,-5420926410078,-228501399124182,2148605460478,674023738968,674023738968,-300974556,-19982158606,-898698257568,75150,-1948592737266,449508646106,3694704417696,-499534836780,1728,-76616485125830,24977142180,-3672074033454,24597952,-153730230,58042886121240,299739983594,58716901908822,-7469037357348,3781314,5896880,202473333422,6371721470136,-149397330186,0,99786516728,1299061393752,-3022523149516,-449352079776,232171540703646,-3370118694840,76167133047764,-3548784,14448425021380],[
+-107057869669,27218378908323260,-680304247283059,5443043883549588,15792184393500,-12911783475382007,-4880555819104862,-14710539710584,-2721161145460644,681855972420861,-7400551753078,-5820658481718,-315737651,1631311615,-3907591018989713,-1579570034286,442415949394674743,-2049008787205198,82628192577115712,656138353,-535434326256,-510227750609034,48687437561050,170427672947724,30087434872463,-721486845724,-721280975078,-154050494356535,598989140572696,961982344051,-517627499134,2088570982251,-513712886335,-3954679523740,535909540320,-2328,57539068309406,1997786399146,635370182322883,-115208958546792,18782403914,107169282290839308,-8451019300376,107200952012974778,1270874328474050,-4181022,-16318266815848,485449981116819,609406621653095,6706311427608,555360,3227962020110976,-1385813230812,3305323678805,441013790386,428677109996386254,3607434230270,-57096791560708,8087901414672,23274797480795541],[
+2757045873522,457951840758351463,-11432883737694137,91604175982425890,339102748559323,-212532344379737194,-65336088625046760,-5968537606740790,-45794580925354504,11463200216956011,-2956447265976343,-1504165012496180,8275966707015,-42759161319571,-64343249233936944,-1035102412315,7860479042293108337,-37267218480865266,1391147165818583702,-16551933002671,13091520439380,-8586096137421894,15850637839367517,-21392970574904623,11712337469029833,-15014131641606,-20531442779590,-13802957696190076,7304515152874666,20018795929391,172415519620,32464833921,-14737567830585,-86284579602264,-26195167299104,-30576,-7165155041797371,729156133778367,-6443294187696591,-24872828981963736,11208049862963,1896178991723015228,-3018961503632420,1907853933987456298,-12892619911072019,-2333292,-5889952115602486,8268451583791714,55325011588726519,2898523877975253,-14367997800,53142828528293007,96192193812,-8251798994235,-1060983556958,7584715966894394204,75070658208100,7130990191382989,2920066095978352,391928692797356920],[
+7064677450544,-110339814679344150,2759552264892312,-22098450860594240,-649058566469778,62611530785422248,56613157184625546,-12353343016609654,11034273805344720,-2759335330785474,-6166605680137360,-2954610613788896,776602744,-4012469592,18916490895978904,565264460444,-861047702337953584,2166387062743898,-333282780697692986,-2845711260,11618978407180,2069656297214868,32687809025832080,-65586947158214668,24581196776666554,29905085588044,29904571976268,-24125713161472392,-8575042020999218,-39873536886510,-5158940042,-109650187384476,14234211467222,161817112664108,-12705950111056,-1200,-21905437250037488,1528647564010238,-39745802096195458,-50082529206714696,5927547421290,-225918151408450700,-6267332361556220,-201439184686257724,-79494509195904454,212974356,-12315225177193606,-1915085090599028,96921258872352930,6090985914572814,-1347840,-15647584065661516,73073455137200,-167936644273538,-43121298007668,-903672606038488676,-149523127853464,21862312845082056,6106471158343434,-92769227663579808],[
+-6438852170046,-35329677477376559,851118866446559,-7084138466907851,-514674220704909,-1133196233926262356,-4138036540057125436,1390301448564069512,3530675510992604,-913782666829192,689909699271137211,341100296791272008,-16504427023297,85272872957365,-339893113454038038,3966223423444,-104493652187756992241,692481916623298121,-284635498651570170,33009069483337,-32168962997684,661140185361926,-3717820073750667605,6255656536118499557,-2759411368349593148,22582399347295,33585357260025,2780367742325545880,689044880089314350,-30099257761598,391163632967,18304966336185,22990028900356,131567961144564,58300761967248,-7776,2087881891136807683,-172456597497742136,4164803915998196799,5675558576949026846,-22039486927961,-23359636677124539644,708162509277556456,-26118960767471585947,8329621375712824779,-35489896,1390126546272922460,-802888824115857,-11121753739293931901,-689786078116917121,28653509040,283279918080634754,-12208452807132,48261305394135,2597436401261030,-93438546681239632840,-112911999971215,-2085218437027373261,-689184438936246324,-159936024332932042],[
+69110794718,146928602131033371,-3672858422035285,29385075255793969,-21245754182905,417993083907522956,1731382292179417664,-589707714795558515,-14692953916011432,3673727299147669,-292667424644730808,-144662671244496344,32660639587,-168746638111,125214479669511448,-75625712313,46475484259437681974,-303685938171277022,521070501340483390,-65334166325,1182501788286,-2754921872296302,1577233665985408601,-2657607616096619358,1170670878084474459,960169873204,938390049908,-1180064444514210846,-289354912059082344,-1284737570615,-42013637902,-1136269185111,635593277009,5340611090336,-1234227897952,159180,-886979445809787424,73166877918990117,-1763229535102316914,-2407856299547928672,-164104355767,10429836144771877329,-300425906002905548,11600505829175895277,-3526459376716961257,1469360,-589704012116573051,2589107444007382,4720259350652531199,292667377559709143,-56702880,-104498439421296447,797586015728,-1796102828943,-1110133526123562,41719344577504419916,-4723204187958,885869181641258634,292389937225313236,181236667793835297],[
+0,-17254048314,-19008,24,108,10352282544,38246450976,-12748608648,0,-3882176208,-6326479188,-3259095642,-10368,53568,3163208976,3882157200,890883306735,-6326480160,-48215488743,20736,-55296,0,35945909463,-55356648096,25305920640,-24,18408,-25737268704,-5128283160,0,1294052400,0,-8640,0,69120,0,-19171092708,1581620040,-38245860432,-52049667024,-47928204,199571668419,-6949542516,224877602283,-76491703584,0,-12748817256,958554144,102853530096,10208639304,0,-2636007480,0,-86400,-36,798334601556,120,19171134144,6326480151,3960],[
+10116409054940,4715510314079252566,-117855776525803652,942873806362550235,379225130077990,857135859787698874,10306504560506341108,-3743547682850654295,-471428528822746596,118135487163790795,-1857895545572479424,-918430579659971164,-211620580340,1093372986820,251216544074171458,-282626676787663,356368262966446213986,-2211357077432031653,14791995209482285460,422545989212,-63094457711776,-88391567765611608,10011972321743353508,-16862313390693021260,7431282981022422023,-16146668069731,-16006402801243,-7508420070854492380,-1752617315658764910,21500343375441,-93176126908627,-58762192711260,-44066434293399,-98394557765740,58046833489572,-439968,-5627745128647080848,464444781542862381,-11098775929741789293,-15292936156804889558,31587917235518,81071461299174382636,-1907056997219496320,88502608856156503109,-22197536015328980380,93696596,-3743721823108989267,84346126812469459,30034164434680594696,1857446189592684162,368695080,-214256076649428805,40264228717328,-70956632689610,-7026606995171100,324285841745796473948,80742597547797,5620719368133485604,1856032180071276496,4385488247652761863],[
+136959745276,732254088212,1660731186,-365273740792,-10929930749813,-19638996122,-1648524402499,-454826962060,-70071037069,2456520346,-1095320271366,1047711292366,97114,-485530,-127410595192,6294511161,133606689058131,4847914908,5089946636888,-252780626,125887832238,1259442156,-4405407991382,-170030064248124,2505276722056,505295155301,505295169861,253777267290,148301202061,-673726540810,44600,-2028420610170,167916797250,2720083672684,-151517009168,-156,-57013873191290,6294910479,-966855279064,5170809128,139768139442,33313548843009,75852040176,33819378795114,-1965182516113,42048373,-276220876,1456073697583,7045817410767,-456942073297,0,129071309326,1358554640556,-3022796794385,-337185023138,133254153323663,-2526475777693,56676688168508,-78307173,8245969402363],[
+4852202935152,-52507821794990568,1340219463033192,-10480396631594436,563514447643032,27063598941580488,16574339049107988,-2442169263209604,5252660586266640,-1286347789787148,-1202536736993952,-665138044998048,14197515307272,-73353829088040,8165668473020112,-3608167744428,-693832025225853504,2798121645416676,-158794394172332616,-28395058240656,23078548166688,985550583550248,6328367962761288,-1850593040055264,4614985516792908,-24924554832828,-34389570569148,-4338952936569816,-2312038425546528,33232722014988,-325363685532,-2337468042312,-23714951570604,-143459194811280,-45557919361128,0,-661036501615824,283388090582676,-8644506172651716,-9332997687574680,19248647235816,-171480186680584896,-1205782473467424,-166931154762852972,-17299514487448464,4542096,-2305495503149748,-786213083916228,17557828169103024,1100332785637032,-24648455520,-6749162216915508,1558311517152,-19893567370392,12272825615472,-685920769732264080,124622774164260,616519265990976,1142994374423496,-45638253864368784],[
+-560597296,147148158280332208,-3678707611657432,29429471641439360,-4511715380576,-69895678428129632,-26671150441134984,-697262277088,-14714817322118016,3678701288166992,209611561184,171412287448,-1725235400,8913716216,-21152556433374032,13558806968,2386969536341110456,-11036070481087720,446698824206504280,3450312952,263950488688,-2759028327167424,-419249225736,-67758622418592,-214997768096,203172973600,204317453408,-657018627870720,3285150036877000,-270903071808,-32872504,-1440,25301516752,1138241987456,-261229323776,-9216,-22607639142336,12994955456,3676800137224360,-262381199319456,-68988470112,578349035008040448,59498777152,578349067182274512,7353534861904976,-608192,86423453984,2627182120102688,2627449397150112,122369371776,2995200,17473850916201704,35533439696,157210496512,-28332578400,2313396140032769984,-1015864234464,22586207495744,24130241928,125931355902051456]]):
+ismith(z):
+z := 'z':
+
+# -----------------------------------------------------------------------------
+# W2
+
+n := 20:
+m2 := matrix(n^2+1, n^2+1, 0):
+
+for i from 1 to n^2 do
+   m2[i, i] := 1
+od:
+for i from 1 to n^2 do
+   if i mod n = 0 then
+      m2[i, n^2+1] := 1
+   fi
+od:
+for i from 1 to n^2 do
+   if (i - 1) mod n = 0 then
+      m2[n^2+1, i] := n - (i - 1)/n
+   fi
+od:
+for i from 1 to n do
+   for j from 1 to n do
+      if i <> j then
+         for k from 1 to n-1 do
+            m2[(i-1)*n+k, (j-1)*n+k+1] := n + 1 - j
+         od
+      fi
+   od
+od:
+ismith(m2):
+
+j := 'j':
+k := 'k':
+m2 := 'm2':
+
+# -----------------------------------------------------------------------------
+# X and Y
+
+t:= RootOf(_Z^2 + 1):
+
+# X
+p4 := expand((7*t*y*x^2*z^2 - 3*t + t*x*y*z
+              + 11*(x + 1 + t)*y^2 + 5*z + t + 1)^4
+             *(3*t*x - 7*t*y + 2*z - 3*t + 1)^5) mod 17027:
+q4 := expand((7*t*y*x^2*z^2 - 3*t + t*x*y*z
+              + 11*(x + 1 + t)*y^2 + 5*z + t + 1)^3
+             *(3*t*x - 7*t*y + 2*z + 3*t - 1)^6) mod 17027:
+
+Gcd(p4, q4) mod 17027:
+Factor(%) mod 17027;
+p4 := 'p4':
+q4 := 'q4':
+
+# Y
+w := matrix([ [ 1,  1, 1,  7, z , 12, y , 17, x , 22, t ],
+         [ 2,  2, 1,  8, z , 13, y , 18, x , 23, t ],
+         [ 3,  3, 1,  9, z , 14, y , 19, x , 24, t ],
+         [ 4,  4, 1, 10, z , 15, y , 20, x , 25, t ],
+         [ 5,  5, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [ 6,  2, x ,  6, 1, 12, y , 17, x , 22, t ],
+         [ 7,  3, x ,  7, 1, 13, y , 18, x , 23, t ],
+         [ 8,  4, x ,  8, 1, 14, y , 19, x , 24, t ],
+         [ 9,  5, x ,  9, 1, 15, y , 20, x , 25, t ],
+         [10, 10, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [11,  2, x ,  7, z , 11, 1, 17, x , 22, t ],
+         [12,  3, t ,  8, z , 12, 1, 18, x , 23, t ],
+         [13,  4, t ,  9, z , 13, 1, 19, x , 24, t ],
+         [14,  5, t , 10, z , 14, 1, 20, x , 25, t ],
+         [15, 15, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [16,  2, t ,  7, z , 12, y , 16, 1, 22, t ],
+         [17,  3, t ,  8, z , 13, y , 17, 1, 23, t ],
+         [18,  4, y ,  9, z , 14, y , 18, 1, 24, t ],
+         [19,  5, y , 10, z , 15, y , 19, 1, 25, t ],
+         [20, 20, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [21,  2, y ,  7, z , 12, y , 17, x , 21, 1],
+         [22,  3, z ,  8, z , 13, y , 18, x , 22, 1],
+         [23,  4, z ,  9, z , 14, y , 19, x , 23, 1],
+         [24,  5, z , 10, z , 15, y , 20, x , 24, 1],
+         [25, 25, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [26,  1, z ,  6, z , 11, y , 16, x , 21, t ]]):
+
+m := matrix(26, 26, 0):
+
+fill :=
+   proc() global m, w; local i, j;
+   for i from 1 to 26 do
+      for j from 1 to 5 do
+         m[i, w[i, 2*j]] := w[i, 2*j+1]
+      od
+   od
+   end:
+
+fill():
+Det(m) mod 17027:
+simplify(%);
+
+m := 'm':
+w := 'w':
+t := 't':
+# ---------- Quit ----------
+quit
Index: Tst/Wester/mupadall
===================================================================
--- Tst/Wester/mupadall	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
+++ Tst/Wester/mupadall	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
@@ -0,0 +1,996 @@
+TEXTWIDTH:= 80:
+#read("Time.mupad"):#
+# -----------------------------------------------------------------------------
+A #
+
+LASTTIME:= time():
+for i from 1 to 100 do
+   (1000 + i)!/(900 + i)!
+end_for:
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+# -----------------------------------------------------------------------------
+B formerly A' #
+
+LASTTIME:= time():
+s := 0:
+for i from 1 to 1000 do
+   s := s + 1/i
+end_for:
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+s := NIL:
+
+# -----------------------------------------------------------------------------
+C formerly B #
+
+LASTTIME:= time():
+x := 13*17*31:
+y := 13*19*29:
+for i from 1 to 200 do
+   gcd(x^(300 + (i mod 181)), y^(200 + (i mod 183)))
+end_for:
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+x := NIL:
+y := NIL:
+
+# -----------------------------------------------------------------------------
+D formerly C #
+
+LASTTIME:= time():
+s := 0:
+for i from 1 to 10 do
+   s := s + i*y*t^i/(y + i*t)^i
+end_for:
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+s := NIL:
+
+# -----------------------------------------------------------------------------
+E formerly D #
+
+LASTTIME:= time():
+s := 0:
+for i from 1 to 10 do
+   s := s + i*y*t^i/(y + abs(5 - i)*t)^i
+end_for:
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+s := NIL:
+
+# -----------------------------------------------------------------------------
+F #
+
+p := (x^2 - 3*x*y + y^2)^4*(3*x - 7*y + 2)^5:
+q := (x^2 - 3*x*y + y^2)^3*(3*x - 7*y - 2)^6:
+LASTTIME:= time():
+qqq:= gcd(p, q):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+factor(qqq);
+qqq:= NIL:
+p := NIL:
+q := NIL:
+
+# -----------------------------------------------------------------------------
+G #
+
+p := poly((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^4*(3*x-7*y+2*z-3)^5,
+          [x,y,z]):
+q := poly((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^3*(3*x-7*y+2*z+3)^6,
+          [x,y,z]):
+LASTTIME:= time():
+qqq:= gcd(p, q):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+factor(qqq);
+qqq:= NIL:
+p := NIL:
+q := NIL:
+
+# -----------------------------------------------------------------------------
+Gp #
+
+export(Dom):
+MZ181 := Dom::Polynomial(Dom::IntegerMod(181)):
+
+p := MZ181(poly((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^4*(3*x-7*y+2*z-3)^5,
+                [x,y,z])):
+q := MZ181(poly((7*y*x^2*z^2-3*x*y*z+11*(x+1)*y^2+5*z+1)^3*(3*x-7*y+2*z+3)^6,
+                [x,y,z])):
+LASTTIME:= time():
+qqq:= gcd(p, q):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+factor(qqq);
+qqq:= NIL:
+p := NIL:
+q := NIL:
+MZ181 := NIL:
+
+# -----------------------------------------------------------------------------
+H, I, J, K and L #
+
+#export(Dom):#   export(linalg):
+MExpr := Dom::Matrix():
+
+hilbert :=
+   proc(n) local a, i, j;
+   begin
+   a := MExpr(n, n, func(0));
+   for i from 1 to n do
+      for j from 1 to n do
+         a[i, j] := 1/(i + j - 1)
+      end_for
+   end_for;
+   return(a)
+   end_proc:
+
+# H #
+h80 := hilbert(80):
+LASTTIME:= time():
+det(h80):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+h80 := NIL:
+
+h40 := hilbert(40):
+# I #
+LASTTIME:= time():
+hinv := h40^(-1):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# J #
+LASTTIME:= time():
+h40*hinv:
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+h40 := NIL:
+
+h70 := hilbert(70):
+# K #
+LASTTIME:= time():
+hinv := h70^(-1):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# L #
+LASTTIME:= time():
+h70*hinv:
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+h70 := NIL:
+
+hinv := NIL:
+MExpr := NIL:
+
+# -----------------------------------------------------------------------------
+M1 #
+
+#export(Dom):   export(linalg):#
+MExpr := Dom::Matrix():
+
+w := MExpr( [ [ 1,  1, 1,  7, x4 , 12, x3 , 17, x2 , 22, x1 ],
+         [ 2,  2, 1,  8, x4 , 13, x3 , 18, x2 , 23, x1 ],
+         [ 3,  3, 1,  9, x4 , 14, x3 , 19, x2 , 24, x1 ],
+         [ 4,  4, 1, 10, x4 , 15, x3 , 20, x2 , 25, x1 ],
+         [ 5,  5, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [ 6,  2, x5 ,  6, 1, 12, x3 , 17, x2 , 22, x1 ],
+         [ 7,  3, x5 ,  7, 1, 13, x3 , 18, x2 , 23, x1 ],
+         [ 8,  4, x5 ,  8, 1, 14, x3 , 19, x2 , 24, x1 ],
+         [ 9,  5, x5 ,  9, 1, 15, x3 , 20, x2 , 25, x1 ],
+         [10, 10, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [11,  2, x5 ,  7, x4 , 11, 1, 17, x2 , 22, x1 ],
+         [12,  3, x5 ,  8, x4 , 12, 1, 18, x2 , 23, x1 ],
+         [13,  4, x5 ,  9, x4 , 13, 1, 19, x2 , 24, x1 ],
+         [14,  5, x5 , 10, x4 , 14, 1, 20, x2 , 25, x1 ],
+         [15, 15, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [16,  2, x5 ,  7, x4 , 12, x3 , 16, 1, 22, x1 ],
+         [17,  3, x5 ,  8, x4 , 13, x3 , 17, 1, 23, x1 ],
+         [18,  4, x5 ,  9, x4 , 14, x3 , 18, 1, 24, x1 ],
+         [19,  5, x5 , 10, x4 , 15, x3 , 19, 1, 25, x1 ],
+         [20, 20, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [21,  2, x5 ,  7, x4 , 12, x3 , 17, x2 , 21, 1],
+         [22,  3, x5 ,  8, x4 , 13, x3 , 18, x2 , 22, 1],
+         [23,  4, x5 ,  9, x4 , 14, x3 , 19, x2 , 23, 1],
+         [24,  5, x5 , 10, x4 , 15, x3 , 20, x2 , 24, 1],
+         [25, 25, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [26,  1, x5 ,  6, x4 , 11, x3 , 16, x2 , 21, x1 ] ]):
+
+m := MExpr(26, 26, func(0)):
+
+fill :=
+   proc() local i, j;
+   begin
+   for i from 1 to 26 do
+      for j from 1 to 5 do
+         m[i, w[i, 2*j]] := w[i, 2*j+1]
+      end_for
+   end_for
+   end_proc:
+
+fill():
+LASTTIME:= time():
+det(m):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+MExpr := NIL:
+w := NIL:
+m := NIL:
+
+# -----------------------------------------------------------------------------
+M2 #
+
+#export(Dom):   export(linalg):#
+MExpr := Dom::Matrix():
+
+w := MExpr([ [ 1,  1, 1, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [ 2,  2, 1, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [ 3,  3, 1, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [ 4,  4, 1, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [ 5,  5, 1, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [ 6,  6, 1, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [ 7,  7, 1, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [ 8,  8, 1, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [ 9,  9, 1, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [10, 10, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [11,  2, x10, 11, 1, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [12,  3, x10, 12, 1, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [13,  4, x10, 13, 1, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [14,  5, x10, 14, 1, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [15,  6, x10, 15, 1, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [16,  7, x10, 16, 1, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [17,  8, x10, 17, 1, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [18,  9, x10, 18, 1, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [19, 10, x10, 19, 1, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [20, 20, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [21,  2, x10, 12, x9, 21, 1, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [22,  3, x10, 13, x9, 22, 1, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [23,  4, x10, 14, x9, 23, 1, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [24,  5, x10, 15, x9, 24, 1, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [25,  6, x10, 16, x9, 25, 1, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [26,  7, x10, 17, x9, 26, 1, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [27,  8, x10, 18, x9, 27, 1, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [28,  9, x10, 19, x9, 28, 1, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [29, 10, x10, 20, x9, 29, 1, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [30, 30, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [31,  2, x10, 12, x9, 22, x8, 31, 1, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [32,  3, x10, 13, x9, 23, x8, 32, 1, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [33,  4, x10, 14, x9, 24, x8, 33, 1, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [34,  5, x10, 15, x9, 25, x8, 34, 1, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [35,  6, x10, 16, x9, 26, x8, 35, 1, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [36,  7, x10, 17, x9, 27, x8, 36, 1, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [37,  8, x10, 18, x9, 28, x8, 37, 1, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [38,  9, x10, 19, x9, 29, x8, 38, 1, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [39, 10, x10, 20, x9, 30, x8, 39, 1, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [40, 40, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [41,  2, x10, 12, x9, 22, x8, 32, x7, 41, 1, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1],
+         [42,  3, x10, 13, x9, 23, x8, 33, x7, 42, 1, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1],
+         [43,  4, x10, 14, x9, 24, x8, 34, x7, 43, 1, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1],
+         [44,  5, x10, 15, x9, 25, x8, 35, x7, 44, 1, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1],
+         [45,  6, x10, 16, x9, 26, x8, 36, x7, 45, 1, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1],
+         [46,  7, x10, 17, x9, 27, x8, 37, x7, 46, 1, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1],
+         [47,  8, x10, 18, x9, 28, x8, 38, x7, 47, 1, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1],
+         [48,  9, x10, 19, x9, 29, x8, 39, x7, 48, 1, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1],
+         [49, 10, x10, 20, x9, 30, x8, 40, x7, 49, 1, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1],
+         [50, 50, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [51,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 51, 1, 62, x4, 72, x3, 82, x2, 92, x1],
+         [52,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 52, 1, 63, x4, 73, x3, 83, x2, 93, x1],
+         [53,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 53, 1, 64, x4, 74, x3, 84, x2, 94, x1],
+         [54,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 54, 1, 65, x4, 75, x3, 85, x2, 95, x1],
+         [55,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 55, 1, 66, x4, 76, x3, 86, x2, 96, x1],
+         [56,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 56, 1, 67, x4, 77, x3, 87, x2, 97, x1],
+         [57,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 57, 1, 68, x4, 78, x3, 88, x2, 98, x1],
+         [58,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 58, 1, 69, x4, 79, x3, 89, x2, 99, x1],
+         [59, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 59, 1, 70, x4, 80, x3, 90, x2, 100, x1],
+         [60, 60, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [61,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 61,   1, 72, x3, 82, x2, 92, x1],
+         [62,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 62,   1, 73, x3, 83, x2, 93, x1],
+         [63,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 63,   1, 74, x3, 84, x2, 94, x1],
+         [64,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 64,   1, 75, x3, 85, x2, 95, x1],
+         [65,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 65,   1, 76, x3, 86, x2, 96, x1],
+         [66,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 66,   1, 77, x3, 87, x2, 97, x1],
+         [67,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 67,   1, 78, x3, 88, x2, 98, x1],
+         [68,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 68,   1, 79, x3, 89, x2, 99, x1],
+         [69, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 69,   1, 80, x3, 90, x2, 100, x1],
+         [70, 70, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [71,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 71,   1, 82, x2, 92, x1],
+         [72,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 72,   1, 83, x2, 93, x1],
+         [73,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 73,   1, 84, x2, 94, x1],
+         [74,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 74,   1, 85, x2, 95, x1],
+         [75,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 75,   1, 86, x2, 96, x1],
+         [76,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 76,   1, 87, x2, 97, x1],
+         [77,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 77,   1, 88, x2, 98, x1],
+         [78,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 78,   1, 89, x2, 99, x1],
+         [79, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 79,   1, 90, x2, 100, x1],
+         [80, 80, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [81,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 81,   1, 92, x1],
+         [82,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 82,   1, 93, x1],
+         [83,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 83,   1, 94, x1],
+         [84,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 84,   1, 95, x1],
+         [85,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 85,   1, 96, x1],
+         [86,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 86,   1, 97, x1],
+         [87,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 87,   1, 98, x1],
+         [88,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 88,   1, 99, x1],
+         [89, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 89,   1, 100, x1],
+         [90, 90, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [91,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 91,   1],
+         [92,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 92,   1],
+         [93,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 93,   1],
+         [94,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 94,   1],
+         [95,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 95,   1],
+         [96,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 96,   1],
+         [97,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 97,   1],
+         [98,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 98,   1],
+         [99, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 99,   1],
+         [100, 100, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [101,  1, x10, 11, x9, 21, x8, 31, x7, 41, x6, 51, x5, 61, x4, 71, x3, 81, x2, 91, x1] ] ):
+
+m := MExpr(101, 101, func(0)):
+
+fill :=
+   proc() local i, j;
+   begin
+   for i from 1 to 101 do
+      for j from 1 to 10 do
+         m[i, w[i, 2*j]] := w[i, 2*j+1]
+      end_for
+   end_for
+   end_proc:
+
+fill():
+LASTTIME:= time():
+det(m):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+MExpr := NIL:
+w := NIL:
+m := NIL:
+
+# -----------------------------------------------------------------------------
+N #
+
+#export(Dom):   export(linalg):#
+MExpr := Dom::Matrix():
+
+res := poly( p11*p22*q1^2*q4^2-p12*p21*q1^2*q4^2-n22*p11*p22*q1*q4^2+2*n11*p11*p22*q1*q4^2-
+p11*p22*q1*q4^2+n22*p12*p21*q1*q4^2-2*n11*p12*p21*q1*q4^2+p12*p21*q1*q4^2+2*g^2*
+p11*p22*q4^2-2*n11*n22*p11*p22*q4^2+2*n22*p11*p22*q4^2+2*n11*p11*p22*q4^2-2*p11*p22*
+q4^2-2*g^2*p12*p21*q4^2+2*n11*n22*p12*p21*q4^2-2*n22*p12*p21*q4^2-2*n11*p12*p21*q4^2+
+2*p12*p21*q4^2-n11*p22*q1*q2*q3*q4+g*p21*q1*q2*q3*q4+g*p12*q1*q2*q3*q4-n22*p11*
+q1*q2*q3*q4-g^2*p22*q2*q3*q4+n11*n22*p22*q2*q3*q4-n11*p22*q2*q3*q4-2*g*p21*q2*q3*
+q4+g*p12*q2*q3*q4+2*g^2*p11*q2*q3*q4-2*n11*n22*p11*q2*q3*q4+2*n22*p11*q2*q3*q4-n11*
+p22*q1*q3*q4+p22*q1*q3*q4+g*p21*q1*q3*q4-2*g*p12*q1*q3*q4+2*n22*p11*q1*q3*q4-2*p11*
+q1*q3*q4-g^2*p22*q3*q4+n11*n22*p22*q3*q4-n22*p22*q3*q4-n11*p22*q3*q4+p22*q3*q4-
+4*g^2*p11*q3*q4+4*n11*n22*p11*q3*q4-4*n22*p11*q3*q4-4*n11*p11*q3*q4+4*p11*q3*q4+
+n22*p11*p22*q1*q2*q4-2*n11*p11*p22*q1*q2*q4+2*n11*p22*q1*q2*q4-n22*p12*p21*q1*q2*
+q4+2*n11*p12*p21*q1*q2*q4+g*p21*q1*q2*q4-2*g*p12*q1*q2*q4-n22*p11*q1*q2*q4-4*g^2*
+p11*p22*q2*q4+4*n11*n22*p11*p22*q2*q4-2*n22*p11*p22*q2*q4-2*n11*p11*p22*q2*q4+2*g^2*
+p22*q2*q4-2*n11*n22*p22*q2*q4+2*n11*p22*q2*q4+4*g^2*p12*p21*q2*q4-4*n11*n22*p12*p21*
+q2*q4+2*n22*p12*p21*q2*q4+2*n11*p12*p21*q2*q4-2*g*p21*q2*q4-2*g*p12*q2*q4+2*g^2*p11*
+q2*q4-2*n11*n22*p11*q2*q4+2*n22*p11*q2*q4-p11*p22*q1^2*q4-p22*q1^2*q4+p12*p21*q1^2*
+q4+2*p11*q1^2*q4-n22*p11*p22*q1*q4-4*n11*p11*p22*q1*q4+5*p11*p22*q1*q4+n22*p22*q1*
+q4-p22*q1*q4+n22*p12*p21*q1*q4+4*n11*p12*p21*q1*q4-5*p12*p21*q1*q4+g*p21*q1*q4+
+4*g*p12*q1*q4+4*n11*p11*q1*q4-4*p11*q1*q4-g^2*q2^2*q3^2+n11*n22*q2^2*q3^2+g^2*
+q2*q3^2-n11*n22*q2*q3^2-n22*q2*q3^2+2*n11*q2*q3^2+2*g^2*q3^2-2*n11*n22*q3^2+2*n22*
+q3^2+2*n11*q3^2-2*q3^2+g^2*p22*q2^2*q3-n11*n22*p22*q2^2*q3-2*g^2*p11*q2^2*q3+2*n11*
+n22*p11*q2^2*q3+g^2*q2^2*q3-n11*n22*q2^2*q3+2*n11*p22*q1*q2*q3-2*g*p21*q1*q2*q3+
+g*p12*q1*q2*q3-n22*p11*q1*q2*q3+n22*q1*q2*q3-2*n11*q1*q2*q3+g^2*p22*q2*q3-n11*
+n22*p22*q2*q3+n22*p22*q2*q3+4*g*p21*q2*q3+g*p12*q2*q3+4*g^2*p11*q2*q3-4*n11*n22*
+p11*q2*q3+4*n11*p11*q2*q3-5*g^2*q2*q3+5*n11*n22*q2*q3-n22*q2*q3-4*n11*q2*q3+2*n11*
+p22*q1*q3-2*p22*q1*q3-2*g*p21*q1*q3-2*g*p12*q1*q3+2*n22*p11*q1*q3-2*p11*q1*q3-2*n22*
+q1*q3-2*n11*q1*q3+4*q1*q3+2*g^2*p11*p22*q2^2-2*n11*n22*p11*p22*q2^2-2*g^2*p22*q2^2+
+2*n11*n22*p22*q2^2-2*g^2*p12*p21*q2^2+2*n11*n22*p12*p21*q2^2-2*g^2*p11*q2^2+2*n11*
+n22*p11*q2^2+2*g^2*q2^2-2*n11*n22*q2^2+n22*p11*p22*q1*q2+4*n11*p11*p22*q1*q2-n22*
+p22*q1*q2-4*n11*p22*q1*q2-n22*p12*p21*q1*q2-4*n11*p12*p21*q1*q2-n22*p11*q1*q2-4*
+n11*p11*q1*q2+n22*q1*q2+4*n11*q1*q2-2*p11*p22*q1^2+2*p22*q1^2+2*p12*p21*q1^2+2*p11*
+q1^2-2*q1^2, [l1, l2, n11, n22, g, p11, p12, p21, p22, a12, a21, a22]):
+
+ss1 := (4*g*a22^3-g*a12*a21*a22^2-4*n22*a21*a22^2+4*n11*a21*a22^2+7*g*a12*a22^2+4*g^2*a22^2-
+4*n11*n22*a22^2+4*n11*a22^2+n22*a12*a21^2*a22-n11*a12*a21^2*a22-4*g*a21^2*a22-
+g*a12^2*a21*a22-5*g^2*a12*a21*a22+5*n11*n22*a12*a21*a22-7*n22*a12*a21*a22+2*n11*a12*
+a21*a22-4*g*a21*a22+3*g*a12^2*a22+3*g^2*a12*a22-3*n11*n22*a12*a22+3*n11*a12*a22+g*
+a12*a21^3+g^2*a12^2*a21^2-n11*n22*a12^2*a21^2+n22*a12^2*a21^2-2*g*a12*a21^2-3*g^2*
+a12^2*a21+3*n11*n22*a12^2*a21-3*n22*a12^2*a21-3*g*a12*a21)/(3*g*a12*a21*a22^2-3*n22*
+a21*a22^2+g*a12*a22^2-n22*a22^2+3*n11*a12*a21^2*a22-3*g*a21^2*a22+5*g*a12^2*a21*
+a22-5*n22*a12*a21*a22+4*n11*a12*a21*a22-4*g*a21*a22+g*a12^2*a22-n22*a12*a22+n11*
+a12*a22-g*a22+2*n11*a12^2*a21^2-2*g*a12*a21^2+2*g*a12^3*a21-2*n22*a12^2*a21+2*n11*
+a12^2*a21-2*g*a12*a21):
+
+ ss2 := (4*g*a12*a22^2-4*n22*a22^2+4*a22^2-g*a12^2*a21*a22+n22*a12*a21*a22+4*n11*a12*a21*
+a22-5*a12*a21*a22-4*g*a21*a22+3*g*a12^2*a22-3*n22*a12*a22+3*a12*a22-n11*a12^2*a21^2+
+a12^2*a21^2+g*a12*a21^2+3*n11*a12^2*a21-3*a12^2*a21-3*g*a12*a21)/(2*g*a12*a22^2-
+2*n22*a22^2+g*a12^2*a21*a22-n22*a12*a21*a22+2*n11*a12*a21*a22-2*g*a21*a22+2*g*a12^2*
+a22-2*n22*a12*a22+2*n11*a12*a22-2*g*a22+n11*a12^2*a21^2-g*a12*a21^2+g*a12^3*a21-
+n22*a12^2*a21+n11*a12^2*a21-g*a12*a21):
+
+ ss3 := (4*p21*a22^3-p21*a12*a21*a22^2-4*p22*a21*a22^2+4*p11*a21*a22^2+7*p21*a12*a22^2-4*
+p11*p22*a22^2+4*p12*p21*a22^2+4*p11*a22^2+p22*a12*a21^2*a22-p11*a12*a21^2*a22-4*
+p12*a21^2*a22-p21*a12^2*a21*a22+5*p11*p22*a12*a21*a22-7*p22*a12*a21*a22-5*p12*p21*
+a12*a21*a22+2*p11*a12*a21*a22-4*p12*a21*a22+3*p21*a12^2*a22-3*p11*p22*a12*a22+3*p12*
+p21*a12*a22+3*p11*a12*a22+p12*a12*a21^3-p11*p22*a12^2*a21^2+p22*a12^2*a21^2+p12*
+p21*a12^2*a21^2-2*p12*a12*a21^2+3*p11*p22*a12^2*a21-3*p22*a12^2*a21-3*p12*p21*a12^2*
+a21-3*p12*a12*a21)/(3*p21*a12*a21*a22^2-3*p22*a21*a22^2+p21*a12*a22^2-p22*a22^2+
+3*p11*a12*a21^2*a22-3*p12*a21^2*a22+5*p21*a12^2*a21*a22-5*p22*a12*a21*a22+4*p11*a12*
+a21*a22-4*p12*a21*a22+p21*a12^2*a22-p22*a12*a22+p11*a12*a22-p12*a22+2*p11*a12^2*
+a21^2-2*p12*a12*a21^2+2*p21*a12^3*a21-2*p22*a12^2*a21+2*p11*a12^2*a21-2*p12*a12*a21):
+
+ ss4 := (4*p21*a12*a22^2-4*p22*a22^2+4*a22^2-p21*a12^2*a21*a22+p22*a12*a21*a22+4*p11*a12*
+a21*a22-5*a12*a21*a22-4*p12*a21*a22+3*p21*a12^2*a22-3*p22*a12*a22+3*a12*a22-p11*a12^2*
+a21^2+a12^2*a21^2+p12*a12*a21^2+3*p11*a12^2*a21-3*a12^2*a21-3*p12*a12*a21)/(2*p21*
+a12*a22^2-2*p22*a22^2+p21*a12^2*a21*a22-p22*a12*a21*a22+2*p11*a12*a21*a22-2*p12*
+a21*a22+2*p21*a12^2*a22-2*p22*a12*a22+2*p11*a12*a22-2*p12*a22+p11*a12^2*a21^2-p12*
+a12*a21^2+p21*a12^3*a21-p22*a12^2*a21+p11*a12^2*a21-p12*a12*a21):
+
+LASTTIME:= time():
+subs(res, [q1 = ss1, q2 = ss2, q3 = ss3, q4 = ss4]);
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+res := NIL:
+ss1 := NIL:
+ss2 := NIL:
+ss3 := NIL:
+ss4 := NIL:
+q1 := NIL:
+q2 := NIL:
+q3 := NIL:
+q4 := NIL:
+
+# -----------------------------------------------------------------------------
+O1 and O2 #
+
+#export(Dom):   export(linalg):#
+MExpr := Dom::Matrix():
+
+f := poly(a6*y^2 + a5*y*z + a4*y*w + a3*z^2 + a2*z*w + a1*w^2,
+          [a1,a2,a3,a4,a5,a6,w,y,z]):
+
+g := poly(b6*y^2 + b5*y*z + b4*y*w + b3*z^2 + b2*z*w + b1*w^2,
+          [b1,b2,b3,b4,b5,b6,w,y,z]):
+
+h := poly(c6*y^2 + c5*y*z + c4*y*w + c3*z^2 + c2*z*w + c1*w^2,
+          [c1,c2,c3,c4,c5,c6,w,y,z]):
+
+d1 := MExpr([ [  a6, a5, a4, a3, a2, a1, 0,  0,  0,  0,  0,  0,  0,  0,  0],
+            [0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0],
+            [0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0,  0],
+            [0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0],
+            [0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1],
+            [0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0,  0],
+            [0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0],
+            [0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1],
+            [0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1],
+            [0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0],
+            [0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0 ] ]):
+
+d2 := MExpr([[ b6, b5, b4, b3, b2, b1, 0,  0,  0,  0,  0,  0,  0,  0,  0],
+            [0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0],
+            [0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0,  0],
+            [0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0],
+            [0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1],
+            [0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0,  0],
+            [0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0],
+            [0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1],
+            [0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1],
+            [0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0],
+            [0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0 ] ]):
+
+d3 := MExpr([ [ c6, c5, c4, c3, c2, c1, 0,  0,  0,  0,  0,  0,  0,  0,  0],
+            [0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0],
+            [0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0,  0],
+            [0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0],
+            [0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1],
+            [0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0,  0],
+            [0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0],
+            [0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1],
+            [0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1],
+            [0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0],
+            [0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0],
+            [0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0 ] ]):
+
+# O1 #
+LASTTIME:= time():
+det1 := det(d1):
+det1 := normal(det1):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+det2 := det(d2):
+det2 := normal(det2):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+det3 := det(d3):
+det3 := normal(det3):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# O2 #
+LASTTIME:= time():
+qqq:= gcd(gcd(det1, det2), det3):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+factor(qqq);
+
+q := NIL:
+f := NIL:
+g := NIL:
+h := NIL:
+d1 := NIL:
+d2 := NIL:
+d3 := NIL:
+det1 := NIL:
+det2 := NIL:
+det3 := NIL:
+MExpr := NIL:
+
+# -----------------------------------------------------------------------------
+P, Pp, P', P'p, Q, Qp, Q', Q'p, T and W1 #
+
+#export(Dom):   export(linalg):#
+MExpr := Dom::Matrix():
+MZ181:= Dom::Matrix( Dom::IntegerMod(181) ):
+
+d := MZ181([[-517,-540,-90,-353,-1086,-1315,-187,168,-317,-1426,-754,-83,542,-215,538,-1471,-885,-925,373,1344],
+       [ 1210,-716,-1241,-444,50,168,1162,-233,1325,185,769,519,1187,760,1332,849,-795,-956,-956,461],
+       [ -500,1003,-1447,-180,678,-195,446,1447,-342,141,-779,294,879,-119,86,-888,746,911,1209,-85],
+       [ 294,-967,1224,842,1120,803,584,-325,-1257,-1497,50,-343,1088,-293,1491,-841,421,-880,-678,-758],
+       [   -793,-193,290,-1254,14,-713,-1359,-1255,1424,517,785,1157,-640,-873,851,611,669,1450,105,918],
+       [   -1369,515,289,1231,-1206,-991,1342,899,851,-1355,505,-1462,268,376,414,1099,-1297,97,-565,751],
+       [   178,548,1170,-744,130,-1238,111,-447,-788,-285,374,-293,-424,-1364,-394,899,-1031,-524,403,-436],
+       [   557,-414,-130,311,-1346,-1439,-293,1341,420,-775,-999,-1457,-1183,-819,303,-661,407,177,-327,820],
+       [   539,-64,-613,1164,-827,931,1361,1050,1260,362,-977,-634,1105,-1172,653,-658,-1426,-264,507,-272],
+       [   392,253,92,895,-487,619,1286,-124,-743,-904,824,180,511,-57,1362,642,-14,782,386,-396],
+       [   -685,-934,483,-659,-13,-232,861,1076,-950,-671,1414,-769,260,28,232,-1037,636,-1180,1116,1310],
+       [ 1319,-276,-936,-1149,873,196,-1488,-626,-150,-1172,-1319,-92,-1163,659,345,1036,-265,-587,-959,-986],
+       [   -81,1015,1062,-1162,907,-555,-51,712,-706,277,-300,1061,-1067,449,-1453,-1296,3,1034,-238,383],
+       [   1150,-460,-1073,-907,255,-1407,-872,-1433,-282,705,925,-263,1367,740,40,1425,88,-418,-86,1175],
+       [   -1491,791,-1476,1150,-496,-809,-781,98,715,1372,157,-397,1460,732,576,1265,-133,1083,-945,95],
+       [-1302,1271,-371,66,-468,484,-217,175,-1254,1274,267,-609,-1161,-1497,-607,-104,-1418,-444,-1403,1259],
+       [   -1015,1351,893,557,-631,1172,1308,-1196,996,104,972,346,-810,198,-690,52,-1137,1373,-708,662],
+       [   627,-266,-478,1109,-874,1399,735,874,-46,-802,962,1494,1193,-742,524,969,-668,-758,-1346,1207],
+       [   -705,1356,-123,-100,-1343,-603,-756,-643,-637,61,879,15,-1009,244,89,-51,-257,-1289,511,-1093],
+       [   599,1079,-976,1486,852,-685,-378,-386,1333,814,1483,-1171,-383,845,729,244,304,533,810,-724  ]]):
+
+w := MExpr([ [ 1,  1, 1, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [ 2,  2, 1, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [ 3,  3, 1, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [ 4,  4, 1, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [ 5,  5, 1, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [ 6,  6, 1, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [ 7,  7, 1, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [ 8,  8, 1, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [ 9,  9, 1, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [10, 10, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0 ],
+         [11,  2, 10, 11, 1, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [12,  3, 10, 12, 1, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [13,  4, 10, 13, 1, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [14,  5, 10, 14, 1, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [15,  6, 10, 15, 1, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [16,  7, 10, 16, 1, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [17,  8, 10, 17, 1, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [18,  9, 10, 18, 1, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [19, 10, 10, 19, 1, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [20, 20, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [21,  2, 10, 12, 9, 21, 1, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [22,  3, 10, 13, 9, 22, 1, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [23,  4, 10, 14, 9, 23, 1, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [24,  5, 10, 15, 9, 24, 1, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [25,  6, 10, 16, 9, 25, 1, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [26,  7, 10, 17, 9, 26, 1, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [27,  8, 10, 18, 9, 27, 1, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [28,  9, 10, 19, 9, 28, 1, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [29, 10, 10, 20, 9, 29, 1, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [30, 30, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [31,  2, 10, 12, 9, 22, 8, 31, 1, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [32,  3, 10, 13, 9, 23, 8, 32, 1, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [33,  4, 10, 14, 9, 24, 8, 33, 1, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [34,  5, 10, 15, 9, 25, 8, 34, 1, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [35,  6, 10, 16, 9, 26, 8, 35, 1, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [36,  7, 10, 17, 9, 27, 8, 36, 1, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [37,  8, 10, 18, 9, 28, 8, 37, 1, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [38,  9, 10, 19, 9, 29, 8, 38, 1, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [39, 10, 10, 20, 9, 30, 8, 39, 1, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [40, 40, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [41,  2, 10, 12, 9, 22, 8, 32, 7, 41, 1, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [42,  3, 10, 13, 9, 23, 8, 33, 7, 42, 1, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [43,  4, 10, 14, 9, 24, 8, 34, 7, 43, 1, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [44,  5, 10, 15, 9, 25, 8, 35, 7, 44, 1, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [45,  6, 10, 16, 9, 26, 8, 36, 7, 45, 1, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [46,  7, 10, 17, 9, 27, 8, 37, 7, 46, 1, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [47,  8, 10, 18, 9, 28, 8, 38, 7, 47, 1, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [48,  9, 10, 19, 9, 29, 8, 39, 7, 48, 1, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [49, 10, 10, 20, 9, 30, 8, 40, 7, 49, 1, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [50, 50, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [51,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 51, 1, 62, 4, 72, 3, 82, 2, 92, 1 ],
+         [52,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 52, 1, 63, 4, 73, 3, 83, 2, 93, 1 ],
+         [53,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 53, 1, 64, 4, 74, 3, 84, 2, 94, 1 ],
+         [54,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 54, 1, 65, 4, 75, 3, 85, 2, 95, 1 ],
+         [55,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 55, 1, 66, 4, 76, 3, 86, 2, 96, 1 ],
+         [56,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 56, 1, 67, 4, 77, 3, 87, 2, 97, 1 ],
+         [57,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 57, 1, 68, 4, 78, 3, 88, 2, 98, 1 ],
+         [58,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 58, 1, 69, 4, 79, 3, 89, 2, 99, 1 ],
+         [59, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 59, 1, 70, 4, 80, 3, 90, 2, 100, 1 ],
+         [60, 60, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [61,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 61,   1, 72, 3, 82, 2, 92, 1 ],
+         [62,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 62,   1, 73, 3, 83, 2, 93, 1 ],
+         [63,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 63,   1, 74, 3, 84, 2, 94, 1 ],
+         [64,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 64,   1, 75, 3, 85, 2, 95, 1 ],
+         [65,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 65,   1, 76, 3, 86, 2, 96, 1 ],
+         [66,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 66,   1, 77, 3, 87, 2, 97, 1 ],
+         [67,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 67,   1, 78, 3, 88, 2, 98, 1 ],
+         [68,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 68,   1, 79, 3, 89, 2, 99, 1 ],
+         [69, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 69,   1, 80, 3, 90, 2, 100, 1 ],
+         [70, 70, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [71,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 71,   1, 82, 2, 92, 1 ],
+         [72,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 72,   1, 83, 2, 93, 1 ],
+         [73,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 73,   1, 84, 2, 94, 1 ],
+         [74,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 74,   1, 85, 2, 95, 1 ],
+         [75,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 75,   1, 86, 2, 96, 1 ],
+         [76,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 76,   1, 87, 2, 97, 1 ],
+         [77,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 77,   1, 88, 2, 98, 1 ],
+         [78,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 78,   1, 89, 2, 99, 1 ],
+         [79, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 79,   1, 90, 2, 100, 1 ],
+         [80, 80, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [81,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 81,   1, 92, 1 ],
+         [82,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 82,   1, 93, 1 ],
+         [83,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 83,   1, 94, 1 ],
+         [84,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 84,   1, 95, 1 ],
+         [85,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 85,   1, 96, 1 ],
+         [86,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 86,   1, 97, 1 ],
+         [87,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 87,   1, 98, 1 ],
+         [88,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 88,   1, 99, 1 ],
+         [89, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 89,   1, 100, 1 ],
+         [90, 90, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [91,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 91,   1 ],
+         [92,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 92,   1 ],
+         [93,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 93,   1 ],
+         [94,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 94,   1 ],
+         [95,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 95,   1 ],
+         [96,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 96,   1 ],
+         [97,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 97,   1 ],
+         [98,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 98,   1 ],
+         [99, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 99,   1 ],
+         [100, 100, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ],
+         [101,  1, 10, 11, 9, 21, 8, 31, 7, 41, 6, 51, 5, 61, 4, 71, 3, 81, 2, 91, 1 ] ] ):
+
+m := MExpr(101, 101, func(0)):
+
+fill :=
+   proc() local i, j;
+   begin
+   for i from 1 to 101 do
+      for j from 1 to 10 do
+         m[i, w[i, 2*j]] := w[i, 2*j+1]
+      end_for
+   end_for
+   end_proc:
+
+fill():
+# P #
+LASTTIME:= time():
+det(m):
+normal(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# Q #
+LASTTIME:= time():
+charPolynomial(m, lambda):
+simplify(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# T #
+# Hermite form #
+LASTTIME:= time():
+hermiteForm(m):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# W1 #
+# Smith form #
+
+mm := MZ181(m):
+# Pp #
+LASTTIME:= time():
+det(mm):
+normal(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# Qp #
+LASTTIME:= time():
+charPolynomial(mm, lambda):
+simplify(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+m2 := MExpr(101, 101, func(0)):
+m2 := m:
+
+fill2 :=
+   proc() local a, i, j;
+   begin
+   for i from 1 to 101 do
+      a := m2[i, 1];
+      for j from 1 to 100 do
+         m2[i, j] := m2[i, j+1]
+      end_for;
+      m2[i, 101] := a
+   end_for
+   end_proc:
+
+fill3 :=
+   proc() local i, j;
+   begin
+   for i from 1 to 101 do
+      for j from 1 to 101 do
+         if m[i, j] <> 0 then
+            m2[i, j] := m[i, j]
+         end_if
+      end_for
+   end_for
+   end_proc:
+
+fill2():
+fill3():
+# P' #
+LASTTIME:= time():
+det(m2):
+normal(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# Q' #
+LASTTIME:= time():
+charPolynomial(m2, lambda):
+simplify(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+mm2 := MZ181(m2):
+# P'p #
+LASTTIME:= time():
+det(mm2):
+normal(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# Q'p #
+LASTTIME:= time():
+charPolynomial(mm2, lambda):
+simplify(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+d := NIL:
+w := NIL:
+m := NIL:
+mm := NIL:
+m2 := NIL:
+mm2 := NIL:
+MExpr := NIL:
+MZ181 := NIL:
+
+# -----------------------------------------------------------------------------
+S and U #
+
+#export(Dom):   export(linalg):#
+MExpr := Dom::Matrix(Dom::Integer):
+
+d := MExpr([[-517,-540,-90,-353,-1086,-1315,-187,168,-317,-1426,-754,-83,542,-215,538,-1471,-885,-925,373,1344],
+       [ 1210,-716,-1241,-444,50,168,1162,-233,1325,185,769,519,1187,760,1332,849,-795,-956,-956,461],
+       [ -500,1003,-1447,-180,678,-195,446,1447,-342,141,-779,294,879,-119,86,-888,746,911,1209,-85],
+       [ 294,-967,1224,842,1120,803,584,-325,-1257,-1497,50,-343,1088,-293,1491,-841,421,-880,-678,-758],
+       [   -793,-193,290,-1254,14,-713,-1359,-1255,1424,517,785,1157,-640,-873,851,611,669,1450,105,918],
+       [   -1369,515,289,1231,-1206,-991,1342,899,851,-1355,505,-1462,268,376,414,1099,-1297,97,-565,751],
+       [   178,548,1170,-744,130,-1238,111,-447,-788,-285,374,-293,-424,-1364,-394,899,-1031,-524,403,-436],
+       [   557,-414,-130,311,-1346,-1439,-293,1341,420,-775,-999,-1457,-1183,-819,303,-661,407,177,-327,820],
+       [   539,-64,-613,1164,-827,931,1361,1050,1260,362,-977,-634,1105,-1172,653,-658,-1426,-264,507,-272],
+       [   392,253,92,895,-487,619,1286,-124,-743,-904,824,180,511,-57,1362,642,-14,782,386,-396],
+       [   -685,-934,483,-659,-13,-232,861,1076,-950,-671,1414,-769,260,28,232,-1037,636,-1180,1116,1310],
+       [ 1319,-276,-936,-1149,873,196,-1488,-626,-150,-1172,-1319,-92,-1163,659,345,1036,-265,-587,-959,-986],
+       [   -81,1015,1062,-1162,907,-555,-51,712,-706,277,-300,1061,-1067,449,-1453,-1296,3,1034,-238,383],
+       [   1150,-460,-1073,-907,255,-1407,-872,-1433,-282,705,925,-263,1367,740,40,1425,88,-418,-86,1175],
+       [   -1491,791,-1476,1150,-496,-809,-781,98,715,1372,157,-397,1460,732,576,1265,-133,1083,-945,95],
+       [-1302,1271,-371,66,-468,484,-217,175,-1254,1274,267,-609,-1161,-1497,-607,-104,-1418,-444,-1403,1259],
+       [   -1015,1351,893,557,-631,1172,1308,-1196,996,104,972,346,-810,198,-690,52,-1137,1373,-708,662],
+       [   627,-266,-478,1109,-874,1399,735,874,-46,-802,962,1494,1193,-742,524,969,-668,-758,-1346,1207],
+       [   -705,1356,-123,-100,-1343,-603,-756,-643,-637,61,879,15,-1009,244,89,-51,-257,-1289,511,-1093],
+       [   599,1079,-976,1486,852,-685,-378,-386,1333,814,1483,-1171,-383,845,729,244,304,533,810,-724  ]]):
+# S --- Hermite form #
+LASTTIME:= time():
+hermiteForm(d):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+# U --- Smith form #
+d := NIL:
+
+# -----------------------------------------------------------------------------
+V #
+
+z:=array(1..60,1..60,[[-271,3050530,-91160,38029376,1055567244,63951178,124789174,170725207,4044,-85971,-48175890,-38362416,-49920,257920,169561,-3176995,-3598707917,-10143059,545091351,99792,-63663280,720,69990947,16103771108,50083241,-47547320,-47512696,-9227925,27813563,63397407,-2381,0,-47589601,-266269036,63730092,0,5374463054,-3011287,467631761,-81916066,15847356,-940211231,-13331724,-947172331,951195982,-4,-20465309,266303389,179984610,-27889228,0,-141306,0,47620312,6339290,-3760844920,237736450,-5367924084,-5705683,-316964281],[
+2757370121490,457951842784171126,-11432883738378425,91604174117689940,339054834861577,-212532345648426370,-65336098012662954,-5968542464042680,-45794581087459480,11463200216306283,-2956449373755937,-1504159337629804,8275966333767,-42759159391123,-64343249559304656,-1035021376169,7860479797346583041,-37267218480864546,1391147172952407311,-16551932269783,13093140052924,-8586096137421138,15850620244785315,-21393712629906709,11712344442059523,-15011942695704,-20529253584856,-13802957696365932,7304515088011017,20015877333319,172415504932,26140517595,-14736108751419,-86272580897226,-26196786401376,-30576,-7165403851265553,729156214858397,-6443306085498693,-24872828981571000,11208049756860,1896179180284035500,-3018960530666876,1907854124737481800,-12892644111455193,-2331025,-5889952115597560,8268452233594429,55325032265039919,2898523391812623,-14367997800,53142828853474095,100408404444,-8261609022559,-1062442854994,7584716721138473025,75059713478590,7131237543046127,2920066095977632,391928739735373504],[
+-3267359936,179801963984,-243890431,21562148592,493286231620,-105395969952,-327914099733,191487729710,552076980,42999923779,92304586274,-23011958298,4204848,-21727568,-32962303162,-43551537030,-17406529628145,68965206267,435702881133,39887760,-16946929730,-191381652,-199819766729,8233244048694,-355944294348,-22539268632,-22542206744,288376296006,37855573770,30038912120,-14234355212,69567672870,-10421001070,-123549534056,16893013912,0,2767664045802,-18246288720,547114279561,573878495536,677771672,-4095787985793,65924510164,-4397208069209,1098463884816,-8050308,140808709718,-44204045920,-1381653021846,-107676720130,0,26913542779,-47328904296,97240889894,15358191328,-16383671099544,112696341840,-2752322735666,-69506578451,-473100895679],[
+193095994314,-965836827965994884,24147080688987747,-193158564788070701,248751918742572,-11000649124399056232,-41130989602113808527,13855538109267808938,96583810844352852,-24144909581610774,6875654123138448033,3398755110928168862,592614141747,-3061839734847,-3298992269248380108,-747837292889,-1051602199206696697641,6948102499084301763,-4696374093566685129,-1185184700727,-12527629174906,18109491908327766,-37054352444265443349,62431720020868024611,-27502654844688194178,-11107478857662,-11502554961210,27715326954517095750,6854111889568568493,14915694696400,12191457093,92756883699,-10853111844168,-62800425443262,11589274094668,60492,20836617151666823997,-1718917430013580250,41490370121762571891,56569681864678207188,4163420387974,-235277162369434592676,7057971978358605996,-262779831702994292682,82980743177894385202,-7995968,13855503341398498134,-17185307539527672,-110861269679340575382,-6875674391651128634,-1028851200,2750166339440266209,-114247935864,9021794287690,26046181834003292,-941108649477730374736,55537361940990,-20810573340289388221,-6869156901430325283,-2128878978332357349],[
+-60317217603696,4417783801537898160,-110459116449179288,883865736504522704,6682510706774829,-9984560399992658996,-29221590861480510400,9534333436026842128,-441779691887380212,110446715840002270,4732023397946460449,2338066099457896408,-597791911592,3088590459256,-3000866407224791040,-9291599516498,-641265937473198570596,4400205807083587296,12197249221856693808,1225273371048,-170879003950440,-82839731034178080,-25496821495480185401,43064261877129257135,-18927520379693017664,-306665205662732,-306266855728652,19047806853716143850,4829684373329790692,408959573372440,-302354460178,1017089869504896,-174562823202120,-1669376437942056,177904019101088,-2896560,14372902975597372621,-1182903425724033236,28677249066636987360,38915907206396144864,-33467932287531,-141942391191570152636,4856918879380351328,-160869017169323142856,57354541052286765244,-4940355964,9533799724062548464,79063756465404436,-76194881919814841612,-4731430323528037308,1037836800,2496109745963039064,-677552366289136,1567303061587996,18146464366988536,-567769564772076099700,1532065330208492,-14354754120091598501,-4727094668581602148,2878081149019550096],[
+-264326293322,-54439031711690230,1360566937114304,-10889880349917477,-102329110664164,470549105985851301,1612795118941858676,-537707669161871297,5442684142108188,-1363813423258423,-266817688323576038,-131880415891253456,-21927772344,113293489560,141234983283688964,3462864112169,39320411425080612074,-262740693945457615,-96820844277465602,43803807328,7052915349616,1020455495351514,1437932452472475138,-2424197146684954902,1067291079282520763,4581338044421,4595965801369,-1075136792767566410,-268037680893047722,-6112553859761,1034790291135,-4415217413256,5231176176525,25884188394100,-6655809642838,4656,-809079746997844358,66706004794096990,-1612453750809245203,-2195124049822536776,-2161207570534,8769617890124828608,-273893673516606872,9836912538848214261,-3224909257538072130,8960138,-537687701733349709,-988540625716145,4300540216314077147,266829909578574784,38054640,-117639171485653272,2923288727808,-8170763755099,-1013544013178020,35078471598832658294,-22906688970655,808066290695740834,266569963270088648,4085503839984104],[
+24963272025794,4886381485163062104,-122115958622687877,977469255614298534,9356157609500058,-42343129013384558554,-145149130497772457682,48393655389315630534,-488528342695861056,122420770758348271,24013576928168364882,11869211557932653888,5522923724688,-28535105723472,-12709249683614084600,-311730669676230,-3539053597094368968052,23647647425095525695,8674093385083624136,-11042673819552,-629180742335160,-91594598777464932,-129413874834646778912,218179960836361618656,-96056185648837552266,-418810170526998,-422492949924126,96762376670054251796,24123099779210645346,558782847079162,-92932949058948,397369561109040,-477108570919674,-2366858678314192,587822796118236,-419040,72817906487078077446,-6003540947056467480,145120401071972169107,197561179399410015852,199308854210260,-789318115689445582936,24650421954633160746,-885374638704335833198,290240957598155721904,-559255866,48391891920963128766,88773332147446648,-387048832098219200858,-24014701291005392256,-9587073600,10585956974746006109,-263055291119616,731753200079688,91223273596876640,-3157272466203429359398,2094050739996714,-72726705305172172390,-23991296090559590736,-379165080103917814],[
+20389824,-5365775181359208,134144500636832,-1073154962048848,1938587364,2548744110993598,972547380127033,-716146423,536577523716528,-134144270250088,-221957540,-342725040,62899200,-324979200,771330380229276,-5839764,-87040567673949520,402433155395656,-16289008525183548,-125798708,139924848,100608288580800,4504667076,-9463530468,125716220,-85384208,-127317008,23959679905926,-119797645255624,113859984,1310400,0,6396877956,-494523792,-239160432,336,-3349176628,-10038154,-134146535179661,9580389505096,74367048,-21089420056737720,-116150160,-21089420156881848,-268293126306934,24948,1453145,-95841505071732,-95837962165506,-165467932,-109200,-637185964093826,-1294894608,-13046241978,56929992,-84357680226975828,426921040,3154510156,-1068760,-4592052720031238],[
+14563551616826176,2729010776404609171617,-68183438768434538836,545903604398227196645,4430633900408259586,-18105321572963543109846,-61084925650482747562708,20325149877300410393327,-272854070520316125071,68356278546144117768,10085618274689543529717,4984964169101449159434,14556597907912092,-75209089111739340,-5435109417611382291676,-132449026062594874,-1475432407312552383025909,9881225769574594044988,5697763874705355965914,-29111868620420540,-244886455176586330,-51157689114971773512,-54353496392117907797947,91642873992725119909595,-40343429593178569156265,-198084140604368515,-207788887889671075,40637070381773833497130,10146780892033665992379,264267285381603088,-38774313554360760,166896278130077172,-222166717182456169,-1121573483124461288,208140873043827908,-221198160,30585916583017379336833,-2521480912855199601730,60966918090071354231789,82974192580069553909904,100281941921537325,-328855819378514814381497,10353114455025874681552,-369199445994056357709964,121933892549557358237280,-237282122625,20324525454680413883891,49503451400690864883,-162547830698834615510428,-10086176164588689686610,-25271310729600,4526418181432508251546,-110309536665691704,295063907792963018,38328435521838554036,-1315423278961132758721763,990420661465476647,-30547646373885558020005,-10076310072033889876263,419104997529324701131],[
+-4815018498338,1722801698588275332728,-43070075671336609361,344558495216457138058,-50870882694372848,-825004715606801158638,-336308267811706869626,8057566612987193697,-172280158642085093894,43070076547255238874,4004770238612359848,1980185400356943236,-19268849450469,99555721998585,-249653988460990473388,82005939881066,27343428619829050829082,-125207242668994108067,5228896082157043152362,38536942977573,2971265908756706,-32302530155093095548,-21573976351947545838,35576423252837437105,-16012088692051234874,2291020178065106,2303799445367524,8438524810586966928,42464702429189493747,-3054699581756774,-23897936812542,113392901104749,205214648761850,12833597355258664,-2946315359354782,-107927304,11873781158885617820,-1000448527958817495,67214465184411942320,29856694351675116122,-773653174459896,6636518443345445161167,4109135643425312679,6620509226052818788803,134428193975296141092,-7303106224,8066405532883470429,30759134171042820782,-33761454322548285327,-4001078166398684583,33453193800,206250404573029423732,340540971725772,2035334075005282,14883259403598448,26546073772517515253092,-11455093496706654,-11858820824197934940,-3998306254135371283,1473636067680100299158],[
+-56448,-429408,0,84672,3640896,-32256,1126440,27216,42336,-7056,211681,-564478,0,0,56448,0,-91058400,0,513791,-9072,0,504,-27813,54524457,42332,-169344,-169344,-140688,-2160,225792,0,-36,-41616,-903168,9072,0,18287715,0,-142632,-144,-69048,-22711680,4,-22881024,-285264,1512,0,901008,526464,211680,0,-56448,-144,95328,112896,-90848232,846720,-18174819,-1,-5625144],[
+-1853480315180,18386080659909470,-459924002690002,3684332123686547,152049329562596,-8737640755507112,-3310819906301532,6860760057454,-1838656017025296,459867391633952,14631153435703,-14792627032279,-215621458,1114049690,-2642708046629656,-97612762022,296511960315463822,-1379774832661658,55781710910959602,755056234,-1953095807248,-344942722334172,60012170311254,2366458126862793,-33696120053938,-7024398876682,-7024255816714,-85820654608760,410468739083398,9365864143440,-5205782,27432784662741,-2904524873466,-37853845152176,2289575361396,876,793491679380831,-97671346940,474758389084500,-32878838293224,-1828918563778,71829654154184460,-1159368412840,71822645854980766,950005124005612,-53317696,-7963143086,311589544536106,235097880431978,6071880361546,374400,2182784308563970,-18284075438438,41870559342006,4671440768064,287318616670055536,35121994462610,-788819375992731,-3169636320,15626214678424374],[
+19468397028658,-4899307034943057156,122454765873750765,-979749054857746419,-2871899088097097,2327308827126437238,889987579415385050,-1210321177154992,489808914276165251,-122734077204156086,-582324146739984,105499446712618,56671131253,-292800904225,704322758300600624,284372254084320,-79346165593807629402,366908458227152475,-14872579203816072976,-118056224873,97370479116894,91840996370291862,1535647258903846,-48501069285829860,2241072019306102,131206423925633,131169475051113,20018576219437720,-109731084481942050,-174941906432830,93172946439929,-379837714555149,93330165059436,719181284789452,-97455488301116,419040,-16306535846557178,118730006309451,-125925159563078131,4997792326976396,-3381603715936,-19225947116606343663,-442072855095480,-19223993813966460342,-251874680636431411,798253789,-917954985578380,-87380426442485399,-78838396784810179,705696051707073,-99684000,-581830109622748757,252049280538252,-600929958860615,-87523961627030,-76903785016416268441,-656032119926353,16218785199397820,455493111198675,-4189072557697867706],[
+74152870205036,-74817529059047670,1877410922467335,-14409349807402888,11228306729457580,-3823081394777619874,-13894553146513213574,4669113431768180256,7454550810422352,-1876241629478631,2314815054828026455,1142786253503525894,196727574492,-1016425838467,-1147162969526656142,-40242656267478,-350382043176334498696,2321396547916242034,-815963221403386985,-390816432946,-960582509234704,1408510966125060,-12476728051014153035,21197903155594118225,-9262596905343393976,-498738403768064,-498869532407744,9333833800837697632,2314089341733516359,665020160234548,2612976169122,147714997962810,-660237025208065,-2852406980037568,899033905095136,-506352,7075076442943082195,-578989178794946834,13986785783918005962,19051759979105473890,333001955488752,-78323127102581669320,2376582768007524636,-87586687482845278723,27973811647887388586,-436593108,4666416330055588896,1317637593314176,-37332450689897354950,-2316467378254365164,-341577600,956059750701299091,-98496893514104,358914698648364,9110960730275552,-313292508313267478092,2493450451426120,-7065966269124781083,-2313569776184954379,-519699868549154684],[
+1406106781996,-353856107498385802,8843955174135341,-70759653376940835,-207426180325656,168093775223238571,64315162962650998,-100174892765070,35375087732355540,-8868013729947692,-48389435291118,4357985443460,4082529477,-21093074457,50870920392701876,24424058442103,-5729664402178807290,26492611100570560,-1074178990998647364,-8497020285,7032715985542,6632960758547526,146890379550892,-3558451321498811,187186121600357,9476536898083,9473886817637,1420024683473994,-7930165513339665,-12635375740899,8024503698153,-27432784695069,6743156191291,51943692354172,-7038850190840,30264,-1196946136747466,10158169423665,-9132882617713611,308849305481158,-292249239750,-1388340797346413229,-38883861784323,-1388174393978670428,-18267524775277706,56236102,-79058363178294,-6309860383623359,-5590935112691478,61185779453871,-7199400,-42023701490559644,18203146407732,-43405634419225,-6321354816596,-5553362892241105138,-47382684511137,1190608451712134,39229571359159,-302544116335712383],[
+12974379654392,-133301800075404861,3334449019423390,-26710166956271259,-1064204310738353,63348131606264856,24009367856910635,-48003530309195,13330515711462720,-3334052544434780,-102424624168450,103543031546673,1563263806,-8076901430,19160096694461860,682865623671,-2150190397991694970,10003365194373242,-404433911726547330,-5393227438,13663422165540,2500834732360644,-420072089357361,-16563089364724470,235879559123275,49164442729916,49163405545148,621280235834048,-2975961214940304,-65552582968232,37469030,-192029492639187,20330885017137,264941344737164,-16018864070384,-5844,-5553735244618968,683293333845,-3438230114088393,238352809973516,12804585758057,-520884348927692052,8113719490660,-520835291839043916,-6879876604882971,373244728,53041786117,-2263241535034846,-1727808242430431,-42506986319365,-2714400,-15825649592861578,127987417318562,-293098831393341,-32699199780514,-2083537396084012936,-245822214223780,5521029790844090,21433392576,-113319589778851318],[
+2124055937454,-10624205107625950122,265617887578858177,-2124744212668777703,2736271106168332,-121007140368389657432,-452440885623251894149,152410919201945975142,1062421919287881372,-265594005397725170,75632195354522928723,37386306220209857548,6518755555377,-33680237063477,-36288914961732192708,-8226210222163,-11567624191273663726142,76429127489927319393,-51660115029233558176,-13037031700317,-137803920944446,199204410991605426,-407597876886919877022,686748920229548290469,-302529203291570135958,-122182267434290,-126528104570758,304868596499688053378,75395230785254253423,164072641660400,134106027895,1020325720689,-119384230289048,-690804679875882,127482015066948,665412,229202788668335085927,-18908091730149382750,456394071339388508497,622266500511460283004,45797624267594,-2588048786063780529579,77637691761944665984,-2890578148732937229013,912788174956838679014,-87955648,152410536755383479498,-189038382934805672,-1219473966472746329714,-75632418308162414654,-11317363200,30251829733842937899,-1256727294504,99239737170990,286508000174036200,-10352195144255034162668,610910981350930,-228916306743183277043,-75560725915733578116,-23417668761655929439],[
+394112962032,65378673085637459,-1632193538889816,13077705542424810,48409350149521,-31037242241640490,-11834385000980895,-11230461101394,-6537781110941176,1636524593574257,-4803596781565,-8475356895128,1182316258560,-6108634002560,-9394482602881572,-147815853214,1059317745743035606,-4903114159463487,198497564306719064,-2364632513116,1871475865436,-1225778536382400,14114399730363,734479155984227,3005498134707,-2143320542458,-2931531381498,-288815536700882,1460089485670287,2857760536289,24631588669,0,-2104346933755,-12317884622040,-3743481256044,-4368,241526137494443,-221707147731,1599545912916860,-117906367416740,1601193974201,256656323254301008,-2660541740780,256653982936614466,3198229851447841,-324324,-18870798,1180439957185744,1171446447694505,-3473305311801,-2052632400,7760702380318182,16833629904,-1186073096149,1429017204946,1026625293017528356,10716602712300,-244826385328105,13885960,55873948057450399],[
+44478527576776,-481321561751178367,12285345077956500,-96070302452062025,5165549179199279,248084383664574734,151936456301464567,-22388234409331558,48149388706940788,-11791490348764896,-11024088525700497,-6097510507619236,130143890399700,-672410100402740,74852378549945402,-33105928729397,-6360000579984469268,25648613320958438,-1455614666839942288,-260288034008184,211553351484420,9034213682543940,58014525371567219,-16971367340322881,42307374290219556,-228475089175887,-315237733578767,-39777099025810246,-21194530249626437,304633289605626,-2992852911094,-21426790387860,-217387060814132,-1315042638406964,-417614254744828,0,-6062031468640365,2597932937158444,-79246348370264304,-85559349377838882,176446319042811,-1571873489395145544,-11053859606605308,-1530170689771144783,-158588966375208193,41630784,-21135391626941974,-7206960918361665,160960214103877519,10087187900562157,-225944175600,-61867668277664489,14284522240560,-182357699585621,112497548771790,-6287494168888308000,1142375445880535,5653953455710491,10478282688847284,-418350492792298547],[
+-13189448064,64389119887659703,-1609805379767648,12877239474532676,-16536662040962,733376609527256524,2742065982638100118,-923702535857324204,-6438920564950524,1609660638397390,-458376939483701407,-226583679602924222,-39507883152,204124063120,219932818265459424,49776529710,70106812543389767684,-463206833272295344,313091599249520308,79012978584,833588677214,-1207299460561728,2470290180153725589,-4162113943236311419,1833510316160368870,738360589300,764699178680,-1847688463632923908,-456940792574497501,-991528979424,-812774744,-12912,722114410192,4174975333464,-771031420952,-4032,-1389107567077488209,114594495254984968,-2766024663116154728,-3771312124311712592,-277560583651,15685143973895815596,-470531466175019196,17518655260661874084,-5532049521460184034,513719,-923700222759924980,1145686521393201,7390751291732958808,458378293249908174,68590080,-183344422945054224,3494011680,-591861232680,-1736410696917084,62740575895582748665,-3691800790012,1387371314412103821,457943793428705557,141925219403210320],[
+476854456466,-4726198722451337528,118123978088630114,-944932284541871657,1224829689758166,-1403290230162527872,-12291440302204658378,4410563748895479877,472493464669970124,-118403564391136253,2188583340479163649,1081685722452993704,239723906522,-1238573510666,-415096933470945932,276920397220827,-406422830808562776457,2542985086022011969,-14908561908661038620,-478376270788,-74132264873214,88592783620650756,-11794361647240191494,19890584829319309293,-8754510831479040161,-55102171158651,-55261168540959,8841824616274930562,2083201451478456742,73503197860297,93563643770783,79864335275010,-50253696827163,-309094927790428,70387232769804,367632,6638470180033565059,-547157504003634165,13096887768633599137,18014615580445654870,15983420625538,-92260477273092433393,2246568744639567984,-101014990320400983236,26193793990425460444,-155969016,4410352586955405457,-84157879293745937,-35367370542606052562,-2188369988747698074,-417491880,350836012017102661,-54335199923656,122230787857892,8328172885949260,-369041905627075968436,275467088962021,-6630142966042735007,-2186542078564683546,-4459731089747094013],[
+-59346457650932,-99910284929280587,2491896795009284,-20469253300799543,-10010641657650469,3739338305396725990,13325050387119747229,-4466956574976319814,10011606655333460,-2498561230183308,-2214855677754306043,-1093524816549646594,-186248034780,962280600332,1122208169352873626,41048316639659,332427191439782345080,-2208161496977100614,260619615007335362,382288543536,830147214550820,1868373561914130,11937463709379882773,-20270257815138346493,8862231804288254906,445290372804165,445414534416981,-8929362401218817290,-2217843401473702197,-593754596022764,-169569112538,-189925975867122,576219795279430,2541246479998042,-778048360152108,573768,-6765447511100261045,553950923918026348,-13385587185104846386,-18227584868193419074,-281963597172171,74256759705744920212,-2273880391578287562,83119757893473068223,-26771381844932477305,-1636032046,-4464622429908635474,-4059820955841305,35715218562621814987,2216233540771631235,323339640,-935079566975555137,126247118658700,-408764363626205,-8695743107130242,297027038818480944254,-2226183265933077,6756752512964197241,2213537751130525912,349119966422761407],[
+-520260011,-4599244693557368,114982030571904,-919839653155050,203587080667,3458063720966434,5422888879149385,-1539381098897070,459923865793176,-114979771029504,-764039632336809,-377665351987466,-11389530,58845890,1043165787309449,-511841519,40494902590551860,-419091430016464,-13766138628520817,23142294,-10273067420,86235675992998,4117563845361103,-6933998601878055,3056143746406850,-9228571638,-9220783798,-3058283392865949,-866596862890927,12293062470,-410152,10118908392,-2509601724,-51214694522,10290917556,288,-2314228420343207,191008598019472,-4727337608752202,-6276775469347386,1902672226,7642480510875210,-784293435866908,10698621623017230,-9454672645441069,-40509,-1539411971576298,-82238953406642,12233115027807261,764033792992513,18720,-864514038578236,-7855841760,11216395653,-2895598594540,30569922043541349,46430406670,2311332867306637,763310998215842,-3791249788888835],[
+737414793284282,122422164517967934483,-3056300453453192591,24488125432797032955,90699136542577415,-60174470678692927398,-29573194287286175858,2465657749507523393,-12242055012160111176,3064402889193548819,1225156046055649179,594155622121173508,2213104349939273,-11434372474685069,-18208339501562881160,-275392639889199,1797653825230551112047,-7946985170226415158,371372117023507501212,-4426208625095765,3499178554638428,-2295281602119058914,-6624594782439068831,12581597336553471871,-4930968681146156999,-4015777237197748,-5491180132702802,4432524576436108430,3968016309548797468,5354388316446247,46603245058578,5870232501423,-3942071212090265,-23078362766044720,-7003269132129952,-9020892,4192370569800538413,-308951768811464721,10445861272618440808,9931581411019688360,2997761343895469,439045811642394220156,1261882009342047520,434104843426546127906,20890110049148244601,-618099600,2486667554037985289,2210547006674444710,-17699814203024961425,-1240646906458812435,-3842195067360,15046223509205992227,27578083294512,-2210565630181355,7357484422657062,1756183246588599286144,20078497964362910,-4193865502786631139,-1232976257258818928,104390465411449173507],[
+3798311548760,-3893680978661525418,97348478770571456,-778803895048766890,-1478619450716420,9654009452902119612,28833655205927513520,-9435493730015311466,389368592536813884,-97334381870061868,-4682685477475817528,-2314426814641727208,595797207456,-3078284311168,2901084906631469800,1319411315252,642335984062709446452,-4390634122645734496,-10619643139981379066,-1210936366080,77269367118984,73006810163690760,25235288569971331248,-42539345833903375524,18730848998011344566,66909849911766,66512800492886,-18853177207382996664,-4769086121702804810,-89285041572096,-795059887824,-139831873173660,60614372784770,371958530139800,-75605265738600,2928624,-14197585291154515924,1170672820986209516,-28368210017607379006,-38514561690731193416,-13742053318726,142340001460005282620,-4806774258615921568,161070773336900762978,-56736439551153085888,3236852702,-9435266914217194610,-70146917970758502,75413017507818682728,4682693158508345252,-1034354880,-2413514188636042600,92840464246864,-224105295134236,-17801411969299160,569360005806877280658,-333306953692494,14179781496029566124,4678237273194438580,-2442848815490205726],[
+-407402065938,-1853770758584,2819924313,-3376696852513,-61655688933042,19437384675912813,70058399663566959,-23521048983912812,316101024144,-53317211502,-11660004673853924,-5755699519321340,-986617671,5097524835,5833041952968378,264000587121,1758967264530786197,-11665211364469281,2958232484022438,1958718477,5276007034728,27800334,62847611387862186,-106858333027169598,46658346191474558,2738610669272,2739268415192,-47016129208031604,-11665290583734449,-3651660325842,-20952003,-811620867993,3626464295226,15662895075888,-4937977152724,2436,-35665486759146102,2916568911459915,-70468556783751861,-95969142444150362,-1829567414878,393081312354718868,-11971321593954912,439744952235148264,-140938432240389444,2403582,-23506235052510656,-14518301123154,188048674347535047,11669123762598160,1712880,-4860936192985038,541091593456,-1972148465561,-46046363607552,1572325249416471890,-13691903022340,35619444342018066,11654164258740108,2301583669821966],[
+5296632009719,-5344109286909938,134100781517775,-1029239089945762,802027394987996,-273077242124735979,-992468081212115588,333508103140848098,532467923421252,-134017261671833,165343932247959574,81627589323832844,14051720115,-72600556547,-81940212096290621,-2874491652386,-25027288820602439298,165814039090631038,-58283084405950185,-27915214013,-68613361075728,100607927517306,-891194860450521789,1514136023551428728,-661614064410997611,-35624418948116,-35633785106402,666702414267770009,165292096115841206,47501769689165,186641142878,10551071282037,-47160065391009,-203744739080740,64217032796064,-36168,505362631059361038,-41356369929300480,999056129802278747,1360839998097344476,23785932868206,-5594509084524927123,169755911932467236,-6256191968870112117,1998129408260914482,-31143014,333315452042651138,94118483626345,-2666603619667076753,-165461955726005172,-24398400,68289982182132084,-7035485602516,25637077695873,650782944924926,-22378036331166950758,178104839924530,-504711904321435888,-165254984042344351,-37121421024058707],[
+407429908,-22997693640455510,574905000609888,-4599212312501138,657305979723,10924141317047252,4171498983637479,-1017801764015,2299617802367304,-575245647638584,-591572281401,-307950654912,268282368,-1386125568,3305979881352236,339592376221,-372954231152843816,1724150098455252,-69813912550238691,-537264512,-39626293308,431178380144244,3211153209809,4977746023725,2267489778455,-29568738430,-29745692542,100413346908358,-513851567567857,39426429432,113881735836,-6324318918,-2489120087,-165917043236,39203544988,1440,1597886860301,137233239025,-577984552150907,36424278611812,6555959174,-90366099625461048,-619882940148,-90363875553814054,-1155959287155939,215411,-1135412160323,-410488554944295,-401543451273223,878770839249,-468000,-2731028812104812,-1337552256,-34391809389,2976103326,-361464394284406163,147843593214,-1595983884943,552959943744,-19680388580832806],[
+-18090409096,1912925624513945908,-47823215103514048,382583116884501567,-55907303576340,-962841803836555590,-542059629303548422,65513963639201811,-191292564022540196,47823072546278529,32521314825554174,16075801604077876,-19674912288,101653846320,-291242651964157598,170282514353,26131458540524929034,-110950382974699231,5798748666663974476,37518815688,3323018231632,-35867358187557696,-175254168335435762,294416125461696690,-130077261000413227,2516955825001,2529999277993,122504014334857674,75223015048519076,-3355513168473,-371046969,6738545400,-17591472397,14107635324884,-3290170334724,-138528,98261772801768702,-8129490580495783,244120748376636761,264099702728353982,-879308210544,6423825548467780468,33381454836468840,6293751454182544521,488240672557285278,296958816,65523834120929607,34158578415683657,-490023847506076998,-32517037579025172,34159320,240709575938981229,507135309776,2624885476180,122985612598328,25695302193574163056,-12593398070091,-98138708486476486,-32487482057519260,1630940363209221499],[
+-13959099316,-3241101352195,16287754292,-74290644193,1864384891591,161277643687238,580688299451573,-194434086115736,75693876264,-577091928343,-96558463069597,-47935415486560,-8600270,44598022,48391393492954,556130985358,14501994089115216,-96526839457015,18614997450214,-2227450810,-57949844404,12352359708,520563960644109,-846447386008083,386323651386340,-85300308455,-85292262887,-389516596462330,-95136979363678,113735246657,186341982851,-9051210,-361971323988,-466520839408,60208918312,0,-282579956705947,24138964238704,-582692484516742,-794491802852258,-9518710829,3239600720440672,-99206366882596,3625818422356149,-1165370478379093,374154552,-194614714057088,1776119208771,1558174289552905,97152811469325,14040,-40327808449441,61611954264,683493972093,-327342147722,12958409409222856,426501531061,282252652877489,96471384313990,15813567332537],[
+-282160972582,-416516159082492,9744619315583,-77015013075024,30383330770234,1794902186076616,5878173247777745,-1943806405779470,39163779142704,-15356954945188,-964461173007262,-480493697093692,-85999877,445966057,539151521398936,5553670806973,138655471484048919,-936523889932951,-982426508575790,-22249597231,-732274580344,7309828540170,5210259958538898,-8281787128712946,3860646571896004,-1395294943388,-1395214487900,-3893737865770518,-959944258656527,1860408248786,1863419744549,2110123692765,-3843381494940,-7587986701840,780722190340,192,-2764544375954518,241382004254380,-5835347138579233,-7944239393019128,-235209749838,30852895520389276,-992153423123344,34714533130340784,-11670511176580576,3737448960,-1946148583971290,9619449600240,15567714607964562,971994005634886,140400,-448933928975077,-790689466476,10054240282170,-2913807522656,123411647360255344,6976474604800,2761630951623662,964713367300276,-178955061760267],[
+-949949499836,883766321025786400,-22095674582510154,176769532404942196,372510543754151,-2370917038427320730,-7192171401000876507,2358876672973490744,-88376375361155613,22093008298429662,1170672638126340390,578607303636896310,-147894772386,764122675506,-712383620014239880,-1192370958235,-162038579772975549201,1104384225896384620,2382746744068787976,300626920194,-19481794173122,-16570620164114784,-6308829755818382190,10634891574965884824,-4682717701369921308,-16856130239595,-16757569979403,4713700287106091178,1190271009290449237,22492819570090,-85906495128,34972092607272,-15172282866066,-93709884157298,19064104553000,-726540,3549414869399268042,-292668561302987833,7089820662466854564,9628811743185606800,3488111770698,-35937434100709439423,1201695055121975392,-40620132661703300790,14179646244679879643,-809140279,2358819480661249904,15935768935153061,-18854877962208998061,-1170675609052863701,256763520,592732268359436674,-23241181297884,55952476847723,4450373495731798,-143749736405096001733,83970076845195,-3544963904332735472,-1169560724828713669,533981831927727903],[
+1079992099627500,189256279197313441006,-4730046664119872108,37858514285244366694,369369950983647321,-1748389546391661492784,-6012500972678017326945,2005406807865596590305,-18921125009125004614,4741762870582080765,995106950109369662441,491855221386225275378,-16017792225300,82758576542100,-524761658642469428736,-12835436284143628,-146870535687002776806919,980935559186005324817,319273561450123467276,32477357833476,-26453578050077136,-3547523639131606358,-5362833404636168882712,9040953771200725228611,-3980504253292229206657,-16524646913344794,-16514002219542218,4009834707642908822356,999351411979249026456,22048165441522949,-3839009504931301,14747756494232796,-19190174172604861,-93466292843747334,25099347001391788,-8889408,3017433071242475782935,-248782786165701651917,6013380426135193812355,8186842572959857677060,8084129330310146,-32760789268675591389233,1021498065678249769194,-36741308233336665077949,12026767471004130982003,-74887533879,2005331509825868284353,3439460194941302989,-16039307080696266028015,-995153306327181576583,27863487600,437104477555491129700,-9766776299554304,27895985996806155,3779617519083718350,-131043157216799974408973,82626816380136724,-3013653389652636937135,-994183722672497370545,-27012541317882581576],[
+58247436075722,11401556787835284624,-284937236552750376,2280761595360235460,21831061139660476,-98800634359388836626,-338681304487396750528,112918529244110800874,-1139899465201910716,285648464842194158,56031679499178938328,27694826965923489720,12886821312624,-66581909675568,-29654915926886150402,-727371604700448,-8257791727104089273000,55177843992473902190,20239551246390532106,-25766269480896,-1468089237825888,-213720730302855636,-301965707949300062270,509086575715508024906,-224131099846512174510,-977224953530364,-985818104973156,225778878892677496450,56287232836277507518,1303828272884410,-216843547925508,927195642462096,-1113258545361906,-5522676935233330,1371587396288556,-977760,169908448613905223824,-14008262209840186998,338614269173411123894,460976085265211346972,465053958690432,-1841742270078799548396,57517651227292465114,-2065874157114285130280,677228901073525479280,-1299596172,112914414482005591394,207137798569756196,-903113941544292619960,-56034303011975988006,-22369838400,24700566273095095332,-613794791860992,1707433976417154,212854305558094676,-7366969088355046592292,4886124504829176,-169695645855623159804,-55979690878051438464,-884718553150588950],[
+404350291156,-4375651816007668,111684955252766,-873366385675225,46959542536888,2255405353570850,1381574991392745,-203641592371491,437721715487300,-107195649143109,-100274660096706,-55459444277708,1183126275606,-6112819090670,680504005105916,-300680670103,-57809803645475384,233113538983123,-13232849941994136,-2366254851204,1923211852544,82129215295854,527704945435010,-154790422277122,384835185938989,-2077046457207,-2865797768567,-361834387970582,-192733133681632,2769393809689,-27113640461,-194789003526,-1976246297397,-11954934233636,-3796492822518,0,-55278059821782,23631490390889,-720757496976695,-778270305338498,1604054117824,-14287885668464176,-100546815363160,-13908546616334587,-1442390172341806,378144,-192252113739231,-65517755660323,1464172255669970,91757663204204,-2054037960,-562456545030399,129859293096,-1657797243060,1022495982776,-57151544591350048,10385232286045,51568050701198,95312736093708,-3803175848054002],[
+690427989033,-132460561667237033024,3311517154735851257,-26491967974911903348,4033095561188974,62919040572146406363,24008980466313689700,618662966663362,13246056711664289820,-3311513314266327041,-192878250083172,-152574925752428,1553025898929,-8023967129589,19041213860029842249,-10304696270642,-2148713145077802644998,9934501326141797196,-402111569225092009411,-3105952962345,-236625335857466,2483635722202321902,384400987687295,60531042555062670,209570557307573,-181601682548636,-182631918228178,591425997519655067,-2957245061486233954,242140773556693,646854766320,-3628049301513,-21902518768133,-1017544138578780,234175832752120,8296728,20195122227583320,-10894606456176,-3309825513262547527,236166837043073128,62067024374400,-520620881740539737181,-56306486139940,-520620897372067068835,-6619592387866396972,554607454,-83862517149686,-2364949124283471319,-2365129566191429345,-105542212998630,-2696233800,-15729698339274738862,-29567963095836,-147182708324335,24663040707726,-2082483526939851957418,908007842559186,-20176671281673466,-18699560863721,-113361481681547451101],[
+4800,116548,44,36396,629460,49320,196236,167928,-3600,31532,-56556,-127056,24,-124,-6600,-33708,-18507240,5040,678192,-48,-56272,0,163860,9621252,23424,-27900,-29356,60216,5820,37200,-10296,0,-38380,-160080,52640,0,3234788,-3756,431552,40632,20100,-4623528,-30120,-4672912,877164,0,10008,160080,-77244,-69276,0,6300,0,22220,22056,-18494112,139500,-3212804,-2880,-1131900],[
+-38817728592,8828889464444015610,-220722456699445800,1765768328310142578,-269936761414266,-4193740685449641252,-1600268876405719566,-41757915176352,-882889036737966216,220722077290934892,12610399055334,10194010360128,-103514123880,534822972360,-1269153380820488448,812231333130,143218160110816695168,-662164228865347656,26801929338129217824,207019956360,15811087600680,-165541699630110960,-24873448514790,-4053651305319522,-13011441658452,12155376461694,12224045250174,-39421117656779700,197109003250295904,-16207515035784,-1972350072,101189006280,1494748206036,68102653814760,-15647818851120,-552960,-1352479667155530,778400273610,220608198922027716,-15742871960279328,-4139300339010,34700939086306000848,3554361323256,34700940981758426766,441212479576860942,-36685440,5185406973168,157630916693853864,157646632950645582,7349920761210,179712000,1048431049790159208,2064547008480,9589587557934,-1676619918036,138803756345260688832,-60776844296310,1351217103145974,1447814679936,7555880603814262314],[
+7420258826259336,1231795828660258674438,-30752093155573631936,246396321710445714517,912655376081875150,-605340381460842622856,-297102949319181512902,24655263224192259462,-123177958425944101164,30833624156424461441,12250998288742422404,5940564510832346764,22269375381953128,-115058439473412744,-183171750778317217674,-2771127911656741,18099259880579159852366,-80037882146581710621,3736717337969134299060,-44538750015476684,35210747160418968,-23094823593907206384,-66244295481034596620,125901907352520972628,-49309334572095623161,-40408546161377087,-55254796371191403,44291789164374690776,39849316275318063884,53878248196328855,468945423072895,58714130425368,-39666833877310703,-232224849508817124,-70470678955093436,-90715272,41951964214086406780,-3089543590183480839,104643880650781652262,99302151941467398294,30164953018943934,4420191658800988297720,12618508639809507336,4370781703427189277241,209271535489645905574,-6218615260,24866675232219913290,22242239782497777533,-176862422097390121322,-12406875197695469570,-38662110193200,151361316603187129551,277724368847832,-22244591193816468,73742042763620756,17680766635395365134460,202038848590628305,-41967299672941031792,-12329762419142615260,1050377617211353237384],[
+1550720992,360118234230,-1811405760,8240099418,-207538196730,-205626943324,-669546085702,185732982784,-8410214460,64119689912,100250903466,72321452256,57024,-312768,-62580676804,-61791176838,-9972304776836,96721104096,659033936296,249293184,6458285376,-1372484736,-561384461398,-2457978187782,-410922242260,9494973726,9494678814,443608304148,-57719140962,-12660295312,-20704683240,1005696,40236205420,51932672776,-6707872464,0,-811715155222,-24984312984,569980345660,833451930788,1051220234,-2129474809148,112633318456,-2528602369694,1138346064686,-41572980,205856732080,-197443920134,-1786481823258,-166258352910,0,52333538462,-6845772672,-75958388906,-3891118964,-8518624509692,-47474867334,807823372802,-100618980612,256062401358],[
+-1041359804124084,-204055038762146103030,5099586591667191360,-40819076555976228306,-392087730673689750,1777854596476220992896,6096051256857846360222,-2032533762198783157116,20400893583299293944,-5112310741891695774,-1008570334152019141590,-498507046199371908144,-210681090970272,1088518962099264,533619945298192488444,13090028192666328,148659259151864566620108,-993289177169055154026,-360750596962494794712,421229465994600,26459292708038712,3824980994859790248,5435383087157034938010,-9163545293876575394934,4034359918143910303326,17551469325734496,17691958256600112,-4064025068951252873856,-1013144011695411258438,-23417469131422722,3903627231367566,-16689521564315856,20000775477608562,99186462519945300,-24755955667260624,17521416,-3058347778183784796954,252148719961864700742,-6095028249955482499752,-8297571787655465927376,-8342149715480778,33155966173658312196096,-1035317787125860029420,37190340164978896900896,-12190063044507127511862,23386796544,-2032459494333314862276,-3707300895646207440,16256072234647432698342,1008617408397872790006,365709708000,-444470962364716305564,11048609258833800,-30755160875626626,-3831351840955451172,132623864839350525895680,-87757341897864708,3054517269067027191486,1007634452491267299072,16927388147109534858],[
+-92221215918280,-15298608666236718492,381933288101243348,-3060183103888139898,-11327967031795108,7262714182934514968,2769244219283053588,2628521713839012,1529840779350041832,-382946568544949006,1124337413331552,1983411162482392,-276662003943196,1429420353706508,2198308776023232196,34402862016290,-247880392442167097216,1147329016986196450,-46448427706823738120,553324006674244,-437919310170032,286832177513496888,-3304560581516752,-171868238951961600,-704475211841938,501545188043130,685986523452378,67584071010150376,-341660693727336280,-668726875655538,-5825908283030,-23610822276,492422625401314,2882429850083672,875968571092376,1022112,-56517125939192264,51803856599126,-374291952179544992,27592588365113300,-374677077702444,-60057588515680609896,622903969733408,-60057042087848447686,-748382203863566420,75937064,616360567260,-276222993648679362,-274123328659620172,812261581591164,480315981600,-1816004229249042010,-3923328854448,277504489229088,-334395480061656,-240230354065098914888,-2507725940217990,57289378475925392,-306921073320,-13074503669883819352],[
+-1622488479255,408275579801924760,-10204563684418095,81645753962708736,239341309175244,-193942399191697185,-74165627113687668,100861545701196,-40817408878765980,10227839613837555,48527109987870,-8793224678658,-4722585975,24400033875,-58693562273788695,-23697713412588,6612180130699727871,-30575704508320140,1239381608825279388,9818951025,-8114717837040,-7653416259348450,-127971459902178,4042019426805900,-186755618674455,-10934618255616,-10931539181526,-1668217115083773,9144267717880314,14579491688205,-7764412206600,31653213072975,-7780603523145,-59935873923972,8121820986600,-34920,1358966184962610,-9894192657378,10493766633775803,-416482744157856,281778576510,1602162176375021964,36839283756984,1601999400690201858,20989563521218866,-63345570,76496105514276,7281716107068177,6569876926550937,-58807775799864,8307000,48485841689044770,-21003630617340,50083408034475,7293976894230,6408648417996153426,54673091302830,-1351653317607300,-37957805456400,349089359727688785],[
+-6582892723692,70231608329962284,-1790255329337346,14016741115222479,-767965150584816,-36020959026058554,-21576838218551343,3038297868269517,-7025361108407004,1722850837776699,1510428597795750,843178974859908,-17746948047690,91692564913650,-10868182781620188,4801376740545,943319419062311496,-3841656573125973,212414310097714296,35493930595524,-23025060684384,-1318173905364210,-7934331022704798,1350354202078974,-5776474757717475,33970335186009,45801640798809,5402730145538658,2993066026209192,-45293758317687,406703427555,2921835052890,33585072223707,195500099102268,51512576121066,-288,503431886668794,-354181185411915,10884087191159817,11665756547610294,-26163710869584,232786913803648992,1511725028975016,227099685807701853,21779846296841130,-5693544,2883760137334353,1048740533851029,-21884696604451146,-1371803271264348,30810663000,8982489952371333,-1946779486776,24069358281024,-17242622027736,931147683977017512,-169851675930195,-449686716492018,-1429698229690260,61082077662402954],[
+1456355183329338,272898778023433343288,-6818286386358254778,54589900518846154305,443063458809438388,-1810531064973528707204,-6108492148234498379732,2032514987740784045582,-27285177090305554788,6835570364229620471,1008561827465671187610,498496416907634209436,1455659817747102,-7520909050446198,-543510611191053946464,-13244902815420231,-147543278034557448066948,988122749428104753845,569769406501923897558,-2911186913878746,-24488649588089328,-5115725793670604004,-5435349639205124785824,9164287400303409572120,-4034342959314547772257,-19808417156015391,-20778891902428143,4063707048445475236934,1014678037862181157046,26426732665675623,-3877431354920505,16689627813016098,-22216671777493463,-112157365665337248,20814091330222548,-22119672,3058591658645673005578,-252148091285720327469,6096691751546090561316,8297419262107431828758,10028195272429196,-32885590976227541691440,1035311445501669774018,-36919953637782150851587,12193389140034654722076,-23728548276,2032452545466706910690,4950304081189886015,-16254783110946174802958,-1008617616460805197134,-2527131119760,452641545063619013403,-11030954278992528,29506387688298526,3832843552594227300,-131542364049617516549324,99042081624430473,-3054764637732188329054,-1007631007203760979292,41908531711551387482],[
+580716461537648,109343696068601116612,-2732690617458983231,21872509892784181438,187944449925699238,-738046938981757001934,-2492973097854514367845,829636770442271766110,-10932103643993154776,2738984328882800550,411671416366395628279,203473713913670134118,108072072040185,-558372381435821,-221555003401836983066,-6445182942519711,-60257158228463445311611,403482491378609160635,226350984008663646205,-215909553397341,-12961198506492646,-2049669857528855814,-2218581069507012708479,3740759746981275564317,-1646725331440400559770,-8406285218461026,-8478350340708558,1658721385163037132532,414122112990870668403,11214711123194770,-1922767884903655,7457130780625269,-9734607819357748,-47566361644085920,12095615921360120,-7408704,1248485233035631720853,-102920992908220853072,2488508674852221836017,3386820197172848550196,4181550511095854,-13431233334083243925484,422589900211405814130,-15077966400162770063790,4977020553980027830128,-39727375896,829600483595779226546,1983605219078537714,-6634868475510582417178,-411695310276775137784,-187597541040,184515395740693521913,-4937995641128452,13830073747367908,1564680213374474628,-53724933407589995767960,42032285696469702,-1246920985110777249541,-411291495904534151329,15343527049040727381],[
+62694322875216,153628293256421152,-3833224569631684,31193530664154840,9751910014102336,-3380369232528078228,-11949195544559130672,4002158873517512836,-15379669703977920,3849032087927968,1984156967848004640,979528392703005520,166111310460,-858241798764,-1014587726981009760,-49523899019396,-296801518250033258812,1973465324403481596,-38363820667470952,-329753958612,-827684338335344,-2874526875410040,-10694428723668304264,18171821098565599776,-7939483967422827304,-433321783881728,-433432549039672,7999555110510967280,1988385253577038772,577792907371888,-2698462264524,143494569065412,-570067537927160,-2476885678390848,774932164205680,-452640,6065087821071018912,-496282690152112332,11994293765115504512,16329889920972001192,285610132349064,-66279745376107790520,2037094872519878048,-74220042389799068464,23988794395945099904,-409266248,3999834077040119596,5012396268390680,-31995802871678301836,-1985581119958152864,-288350400,845340525608093576,-95627763391248,334353175290164,7813284952755648,-265118981604095309272,2166401861637792,-6057275200564874848,-1983083949440483528,-259276035090553040],[
+4149953792015292,688437392612872413392,-17186997946910631780,137708239628699295222,509757281359305136,-326764684973081408696,-124408913766536986040,-187744579985426584,-68842835070062580504,17232596223379337918,-85066863476833068,-106292917375952344,12449787267768300,-64323900883469340,-98906658928615801368,-1548746227630494,11159811173070720692952,-51664277409501451798,2090188095394290770868,-24899574478841892,19706431199528640,-12907447988108137536,334479519087596904,7421064268391956616,169588293615148718,-22569478302900054,-30869336458371414,-3180205057764892420,15340261667701840220,30092635342643022,261958764439542,1062487002420,-22158962998850846,-129709031454368208,-39418643370415128,-45982560,2438804618898888820,6286761443098782,16635015906097582788,-1525255480317394468,16860455569428992,2703751974307599006736,-63416241899903292,2703865271967344191274,33260955275306027736,-3417517248,-69488666073724000,12430031855436970790,12891237012533038972,-2080629326525148,-21614214117600,81705826989028089822,176549798412720,-12487731873274772,14917116387818376,10815007897329669304192,112847397266113770,-2473686651628121092,34452875060655048,588359198586606304856],[
+-678209032883760,10592622209346546900,-264917017432459920,2121451282629824280,62309622062950296,-6010706955462196576,-5434863089812241652,1185920929566486012,-1059290285326053312,264896191758494280,591994145291745776,283642618954528904,-74553864744,385197087624,-1815983126032420944,-54265387705332,82660579430999692440,-207973158030370464,31995146946805501488,273188664456,-1115421917162544,-198687004534745136,-3138029666458528440,6296346922060492800,-2359794890569216988,-2870888201897592,-2870838895177848,2316068463550364664,823204033800220464,3827859521698296,495258244248,10526417988911232,-1366484238803940,-15534442736141136,1219771200355120,115200,2102921974288292280,-146750166144486204,3815597001170215068,4807922803845559440,-569044552027080,21688142536839826176,601663906711592880,19338161731518122568,7631472882675248484,-20445601680,1182261617013464172,183848168417005824,-9304440851963138940,-584734647803410812,129392640,1502168070319155600,-7015051703735728,16121917733206052,4139644602796728,86752570186209212304,14354220201159384,-2098782031418505600,-586221231200028672,8905845856095550416],[
+99785345448,623445276120,-2340,-574311017748,-14753776819320,-389725566628,-2889699116132,-1498598387884,-49856908176,-18118254,-649055528664,1747099510588,-2340,11700,-99786750984,24978072306,232420797120156,1992684,2200347498350,-22996296,499557161760,1277702,-5420926410078,-228501399124182,2148605460478,674023738968,674023738968,-300974556,-19982158606,-898698257568,75150,-1948592737266,449508646106,3694704417696,-499534836780,1728,-76616485125830,24977142180,-3672074033454,24597952,-153730230,58042886121240,299739983594,58716901908822,-7469037357348,3781314,5896880,202473333422,6371721470136,-149397330186,0,99786516728,1299061393752,-3022523149516,-449352079776,232171540703646,-3370118694840,76167133047764,-3548784,14448425021380],[
+-107057869669,27218378908323260,-680304247283059,5443043883549588,15792184393500,-12911783475382007,-4880555819104862,-14710539710584,-2721161145460644,681855972420861,-7400551753078,-5820658481718,-315737651,1631311615,-3907591018989713,-1579570034286,442415949394674743,-2049008787205198,82628192577115712,656138353,-535434326256,-510227750609034,48687437561050,170427672947724,30087434872463,-721486845724,-721280975078,-154050494356535,598989140572696,961982344051,-517627499134,2088570982251,-513712886335,-3954679523740,535909540320,-2328,57539068309406,1997786399146,635370182322883,-115208958546792,18782403914,107169282290839308,-8451019300376,107200952012974778,1270874328474050,-4181022,-16318266815848,485449981116819,609406621653095,6706311427608,555360,3227962020110976,-1385813230812,3305323678805,441013790386,428677109996386254,3607434230270,-57096791560708,8087901414672,23274797480795541],[
+2757045873522,457951840758351463,-11432883737694137,91604175982425890,339102748559323,-212532344379737194,-65336088625046760,-5968537606740790,-45794580925354504,11463200216956011,-2956447265976343,-1504165012496180,8275966707015,-42759161319571,-64343249233936944,-1035102412315,7860479042293108337,-37267218480865266,1391147165818583702,-16551933002671,13091520439380,-8586096137421894,15850637839367517,-21392970574904623,11712337469029833,-15014131641606,-20531442779590,-13802957696190076,7304515152874666,20018795929391,172415519620,32464833921,-14737567830585,-86284579602264,-26195167299104,-30576,-7165155041797371,729156133778367,-6443294187696591,-24872828981963736,11208049862963,1896178991723015228,-3018961503632420,1907853933987456298,-12892619911072019,-2333292,-5889952115602486,8268451583791714,55325011588726519,2898523877975253,-14367997800,53142828528293007,96192193812,-8251798994235,-1060983556958,7584715966894394204,75070658208100,7130990191382989,2920066095978352,391928692797356920],[
+7064677450544,-110339814679344150,2759552264892312,-22098450860594240,-649058566469778,62611530785422248,56613157184625546,-12353343016609654,11034273805344720,-2759335330785474,-6166605680137360,-2954610613788896,776602744,-4012469592,18916490895978904,565264460444,-861047702337953584,2166387062743898,-333282780697692986,-2845711260,11618978407180,2069656297214868,32687809025832080,-65586947158214668,24581196776666554,29905085588044,29904571976268,-24125713161472392,-8575042020999218,-39873536886510,-5158940042,-109650187384476,14234211467222,161817112664108,-12705950111056,-1200,-21905437250037488,1528647564010238,-39745802096195458,-50082529206714696,5927547421290,-225918151408450700,-6267332361556220,-201439184686257724,-79494509195904454,212974356,-12315225177193606,-1915085090599028,96921258872352930,6090985914572814,-1347840,-15647584065661516,73073455137200,-167936644273538,-43121298007668,-903672606038488676,-149523127853464,21862312845082056,6106471158343434,-92769227663579808],[
+-6438852170046,-35329677477376559,851118866446559,-7084138466907851,-514674220704909,-1133196233926262356,-4138036540057125436,1390301448564069512,3530675510992604,-913782666829192,689909699271137211,341100296791272008,-16504427023297,85272872957365,-339893113454038038,3966223423444,-104493652187756992241,692481916623298121,-284635498651570170,33009069483337,-32168962997684,661140185361926,-3717820073750667605,6255656536118499557,-2759411368349593148,22582399347295,33585357260025,2780367742325545880,689044880089314350,-30099257761598,391163632967,18304966336185,22990028900356,131567961144564,58300761967248,-7776,2087881891136807683,-172456597497742136,4164803915998196799,5675558576949026846,-22039486927961,-23359636677124539644,708162509277556456,-26118960767471585947,8329621375712824779,-35489896,1390126546272922460,-802888824115857,-11121753739293931901,-689786078116917121,28653509040,283279918080634754,-12208452807132,48261305394135,2597436401261030,-93438546681239632840,-112911999971215,-2085218437027373261,-689184438936246324,-159936024332932042],[
+69110794718,146928602131033371,-3672858422035285,29385075255793969,-21245754182905,417993083907522956,1731382292179417664,-589707714795558515,-14692953916011432,3673727299147669,-292667424644730808,-144662671244496344,32660639587,-168746638111,125214479669511448,-75625712313,46475484259437681974,-303685938171277022,521070501340483390,-65334166325,1182501788286,-2754921872296302,1577233665985408601,-2657607616096619358,1170670878084474459,960169873204,938390049908,-1180064444514210846,-289354912059082344,-1284737570615,-42013637902,-1136269185111,635593277009,5340611090336,-1234227897952,159180,-886979445809787424,73166877918990117,-1763229535102316914,-2407856299547928672,-164104355767,10429836144771877329,-300425906002905548,11600505829175895277,-3526459376716961257,1469360,-589704012116573051,2589107444007382,4720259350652531199,292667377559709143,-56702880,-104498439421296447,797586015728,-1796102828943,-1110133526123562,41719344577504419916,-4723204187958,885869181641258634,292389937225313236,181236667793835297],[
+0,-17254048314,-19008,24,108,10352282544,38246450976,-12748608648,0,-3882176208,-6326479188,-3259095642,-10368,53568,3163208976,3882157200,890883306735,-6326480160,-48215488743,20736,-55296,0,35945909463,-55356648096,25305920640,-24,18408,-25737268704,-5128283160,0,1294052400,0,-8640,0,69120,0,-19171092708,1581620040,-38245860432,-52049667024,-47928204,199571668419,-6949542516,224877602283,-76491703584,0,-12748817256,958554144,102853530096,10208639304,0,-2636007480,0,-86400,-36,798334601556,120,19171134144,6326480151,3960],[
+10116409054940,4715510314079252566,-117855776525803652,942873806362550235,379225130077990,857135859787698874,10306504560506341108,-3743547682850654295,-471428528822746596,118135487163790795,-1857895545572479424,-918430579659971164,-211620580340,1093372986820,251216544074171458,-282626676787663,356368262966446213986,-2211357077432031653,14791995209482285460,422545989212,-63094457711776,-88391567765611608,10011972321743353508,-16862313390693021260,7431282981022422023,-16146668069731,-16006402801243,-7508420070854492380,-1752617315658764910,21500343375441,-93176126908627,-58762192711260,-44066434293399,-98394557765740,58046833489572,-439968,-5627745128647080848,464444781542862381,-11098775929741789293,-15292936156804889558,31587917235518,81071461299174382636,-1907056997219496320,88502608856156503109,-22197536015328980380,93696596,-3743721823108989267,84346126812469459,30034164434680594696,1857446189592684162,368695080,-214256076649428805,40264228717328,-70956632689610,-7026606995171100,324285841745796473948,80742597547797,5620719368133485604,1856032180071276496,4385488247652761863],[
+136959745276,732254088212,1660731186,-365273740792,-10929930749813,-19638996122,-1648524402499,-454826962060,-70071037069,2456520346,-1095320271366,1047711292366,97114,-485530,-127410595192,6294511161,133606689058131,4847914908,5089946636888,-252780626,125887832238,1259442156,-4405407991382,-170030064248124,2505276722056,505295155301,505295169861,253777267290,148301202061,-673726540810,44600,-2028420610170,167916797250,2720083672684,-151517009168,-156,-57013873191290,6294910479,-966855279064,5170809128,139768139442,33313548843009,75852040176,33819378795114,-1965182516113,42048373,-276220876,1456073697583,7045817410767,-456942073297,0,129071309326,1358554640556,-3022796794385,-337185023138,133254153323663,-2526475777693,56676688168508,-78307173,8245969402363],[
+4852202935152,-52507821794990568,1340219463033192,-10480396631594436,563514447643032,27063598941580488,16574339049107988,-2442169263209604,5252660586266640,-1286347789787148,-1202536736993952,-665138044998048,14197515307272,-73353829088040,8165668473020112,-3608167744428,-693832025225853504,2798121645416676,-158794394172332616,-28395058240656,23078548166688,985550583550248,6328367962761288,-1850593040055264,4614985516792908,-24924554832828,-34389570569148,-4338952936569816,-2312038425546528,33232722014988,-325363685532,-2337468042312,-23714951570604,-143459194811280,-45557919361128,0,-661036501615824,283388090582676,-8644506172651716,-9332997687574680,19248647235816,-171480186680584896,-1205782473467424,-166931154762852972,-17299514487448464,4542096,-2305495503149748,-786213083916228,17557828169103024,1100332785637032,-24648455520,-6749162216915508,1558311517152,-19893567370392,12272825615472,-685920769732264080,124622774164260,616519265990976,1142994374423496,-45638253864368784],[
+-560597296,147148158280332208,-3678707611657432,29429471641439360,-4511715380576,-69895678428129632,-26671150441134984,-697262277088,-14714817322118016,3678701288166992,209611561184,171412287448,-1725235400,8913716216,-21152556433374032,13558806968,2386969536341110456,-11036070481087720,446698824206504280,3450312952,263950488688,-2759028327167424,-419249225736,-67758622418592,-214997768096,203172973600,204317453408,-657018627870720,3285150036877000,-270903071808,-32872504,-1440,25301516752,1138241987456,-261229323776,-9216,-22607639142336,12994955456,3676800137224360,-262381199319456,-68988470112,578349035008040448,59498777152,578349067182274512,7353534861904976,-608192,86423453984,2627182120102688,2627449397150112,122369371776,2995200,17473850916201704,35533439696,157210496512,-28332578400,2313396140032769984,-1015864234464,22586207495744,24130241928,125931355902051456]]):
+# Smith form #
+z := NIL:
+
+# -----------------------------------------------------------------------------
+W1 #
+# Smith form #
+
+# -----------------------------------------------------------------------------
+W2 #
+#export(Dom):   export(linalg):#
+MExpr := Dom::Matrix():
+
+n := 20:
+m2 := MExpr(n^2+1, n^2+1, func(0)):
+
+for i from 1 to n^2 do
+   m2[i, i] := 1
+end_for:
+for i from 1 to n^2 do
+   if i mod n = 0 then
+      m2[i, n^2+1] := 1
+   end_if
+end_for:
+for i from 1 to n^2 do
+   if (i - 1) mod n = 0 then
+      m2[n^2+1, i] := n - (i - 1)/n
+   end_if
+end_for:
+for i from 1 to n do
+   for j from 1 to n do
+      if i <> j then
+         for k from 1 to n-1 do
+            m2[(i-1)*n+k, (j-1)*n+k+1] := n + 1 - j
+         end_for
+      end_if
+   end_for
+end_for:
+# Smith form #
+
+j := NIL:
+k := NIL:
+m2 := NIL:
+MExpr := NIL:
+
+# -----------------------------------------------------------------------------
+X and Y #
+
+#export(Dom):   export(linalg):#
+G := Dom::GaloisField(17027, 2, poly(t^2+1, [t], IntMod(17027))):
+
+# X #
+p4 := poly((7*t*y*x^2*z^2 - 3*t + t*x*y*z + 11*(x + 1 + t)*y^2 + 5*z + t + 1)^4            *(3*t*x - 7*t*y + 2*z - 3*t + 1)^5, [x,y,z], G):
+q4 := poly((7*t*y*x^2*z^2 - 3*t + t*x*y*z + 11*(x + 1 + t)*y^2 + 5*z + t + 1)^3
+           *(3*t*x - 7*t*y + 2*z + 3*t - 1)^6, [x,y,z], G):
+
+LASTTIME:= time():
+qqq:= gcd(p4, q4):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+factor(qqq);
+qqq:= NIL:
+p4 := NIL:
+q4 := NIL:
+
+# Y #
+R := Dom::DistributedPolynomial([x, y, z], G):
+matrix := Dom::Matrix( R ):
+MExpr := Dom::Matrix():
+
+w := matrix([ [ 1,  1, 1,  7, z , 12, y , 17, x , 22, t ],
+         [ 2,  2, 1,  8, z , 13, y , 18, x , 23, t ],
+         [ 3,  3, 1,  9, z , 14, y , 19, x , 24, t ],
+         [ 4,  4, 1, 10, z , 15, y , 20, x , 25, t ],
+         [ 5,  5, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [ 6,  2, x ,  6, 1, 12, y , 17, x , 22, t ],
+         [ 7,  3, x ,  7, 1, 13, y , 18, x , 23, t ],
+         [ 8,  4, x ,  8, 1, 14, y , 19, x , 24, t ],
+         [ 9,  5, x ,  9, 1, 15, y , 20, x , 25, t ],
+         [10, 10, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [11,  2, x ,  7, z , 11, 1, 17, x , 22, t ],
+         [12,  3, t ,  8, z , 12, 1, 18, x , 23, t ],
+         [13,  4, t ,  9, z , 13, 1, 19, x , 24, t ],
+         [14,  5, t , 10, z , 14, 1, 20, x , 25, t ],
+         [15, 15, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [16,  2, t ,  7, z , 12, y , 16, 1, 22, t ],
+         [17,  3, t ,  8, z , 13, y , 17, 1, 23, t ],
+         [18,  4, y ,  9, z , 14, y , 18, 1, 24, t ],
+         [19,  5, y , 10, z , 15, y , 19, 1, 25, t ],
+         [20, 20, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [21,  2, y ,  7, z , 12, y , 17, x , 21, 1],
+         [22,  3, z ,  8, z , 13, y , 18, x , 22, 1],
+         [23,  4, z ,  9, z , 14, y , 19, x , 23, 1],
+         [24,  5, z , 10, z , 15, y , 20, x , 24, 1],
+         [25, 25, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [26,  1, z ,  6, z , 11, y , 16, x , 21, t ]]):
+
+v := MExpr([ [ 1,  1, 1,  7, z , 12, y , 17, x , 22, t ],
+         [ 2,  2, 1,  8, z , 13, y , 18, x , 23, t ],
+         [ 3,  3, 1,  9, z , 14, y , 19, x , 24, t ],
+         [ 4,  4, 1, 10, z , 15, y , 20, x , 25, t ],
+         [ 5,  5, 1, 26, 1, 1, 0, 1, 0, 1, 0 ],
+         [ 6,  2, x ,  6, 1, 12, y , 17, x , 22, t ],
+         [ 7,  3, x ,  7, 1, 13, y , 18, x , 23, t ],
+         [ 8,  4, x ,  8, 1, 14, y , 19, x , 24, t ],
+         [ 9,  5, x ,  9, 1, 15, y , 20, x , 25, t ],
+         [10, 10, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [11,  2, x ,  7, z , 11, 1, 17, x , 22, t ],
+         [12,  3, t ,  8, z , 12, 1, 18, x , 23, t ],
+         [13,  4, t ,  9, z , 13, 1, 19, x , 24, t ],
+         [14,  5, t , 10, z , 14, 1, 20, x , 25, t ],
+         [15, 15, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [16,  2, t ,  7, z , 12, y , 16, 1, 22, t ],
+         [17,  3, t ,  8, z , 13, y , 17, 1, 23, t ],
+         [18,  4, y ,  9, z , 14, y , 18, 1, 24, t ],
+         [19,  5, y , 10, z , 15, y , 19, 1, 25, t ],
+         [20, 20, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [21,  2, y ,  7, z , 12, y , 17, x , 21, 1],
+         [22,  3, z ,  8, z , 13, y , 18, x , 22, 1],
+         [23,  4, z ,  9, z , 14, y , 19, x , 23, 1],
+         [24,  5, z , 10, z , 15, y , 20, x , 24, 1],
+         [25, 25, 1, 26, 1, 1, 0, 1, 0, 1, 0],
+         [26,  1, z ,  6, z , 11, y , 16, x , 21, t ]]):
+
+m := matrix(26, 26, func(0)):
+
+fill :=
+   proc() local i, j;
+   begin
+   for i from 1 to 26 do
+      for j from 1 to 5 do
+         m[i, v[i, 2*j]] := w[i, 2*j+1]
+      end_for
+   end_for
+   end_proc:
+
+fill():
+LASTTIME:= time():
+det(m):
+normal(%):
+print(Unquoted, "Time" = (time() - LASTTIME)*msec);
+
+m := NIL:
+w := NIL:
+matrix := NIL:
+MExpr := NIL:
+G := NIL:
+R := NIL:
+# ---------- Quit ---------- #
+quit
Index: Tst/Wester/singall
===================================================================
--- Tst/Wester/singall	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
+++ Tst/Wester/singall	(revision 33ec1145a109507ad3e3cf4a69a847b703358e93)
@@ -0,0 +1,1121 @@
+//timer = 1;
+
+// A
+//LIB "general.lib";
+//factorial(1000)/factorial(900);
+ring R = 0, x, dp;
+number tinit;
+proc fact (int n)
+{
+   number f = 1;
+   for (int k = 1; k <= n; k++)
+      {
+      f = f*number(k);
+      }
+   return(f);
+}
+number q;
+tinit = timer;
+print("A");
+for (int i = 1; i <= 100; i++)
+   {
+   q = fact(1000 + i)/fact(900 + i);
+   }
+timer - tinit;
+kill(i, q);
+
+// B formerly A'
+ring R = 0, x, dp;
+number tinit;
+tinit = timer;
+print("A'");
+number s = 0;
+for (int i = 1; i <= 1000; i++)
+   {
+   s = s + 1/number(i);
+   }
+timer - tinit;
+kill(i, s);
+
+// C formerly B
+ring R = 0, x, dp;
+number tinit;
+poly q;
+tinit = timer;
+print("B");
+number x = 13*17*31;
+number y = 13*19*29;
+for (int i = 1; i <= 200; i++)
+   {
+   q = gcd(x^(300 + (i mod 181)), y^(200 + (i mod 183)));
+   }
+timer - tinit;
+kill(i, q, x, y);
+
+// D formerly C
+ring R = 0, (y, t), dp;
+ideal I = (y, t);
+poly s = 0;
+qring Q = std(I);
+number tinit;
+poly s = fetch(R, s);
+tinit = timer;
+print("C");
+for (int i = 1; i <= 10; i++)
+   {
+   s = s + i*y*t^i/(y + i*t)^i;
+   }
+timer - tinit;
+kill(i, s);
+
+// E formerly D
+ring R = 0, (y, t), dp;
+ideal I = (y, t);
+poly s = 0;
+qring Q = std(I);
+number tinit;
+poly s = fetch(R, s);
+proc abs (int n)
+{
+   if (n >= 0)
+      {
+      return(n);
+      }
+   else
+      {
+      return(-n);
+      }
+}
+tinit = timer;
+print("D");
+for (int i = 1; i <= 10; i++)
+   {
+   s = s + i*y*t^i/(y + abs(5 - i)*t)^i;
+   }
+timer - tinit;
+kill(i, s);
+
+// F
+ring R = 0, (x, y), dp;
+number tinit;
+poly g;
+tinit = timer;
+print("F");
+poly p = (x^2 - 3*x*y + y^2)^4*(3*x - 7*y + 2)^5;
+poly q = (x^2 - 3*x*y + y^2)^3*(3*x - 7*y - 2)^6;
+g = gcd(p, q);
+timer - tinit;
+tinit = timer;
+print("F+");
+factorize(g);
+timer - tinit;
+kill(g, p, q);
+
+// G
+ring R = 0, (x, y, z), dp;
+number tinit;
+poly g;
+tinit = timer;
+print("G");
+poly p = (7*y*x^2*z^2 - 3*x*y*z + 11*(x+1)*y2 + 5*z + 1)^4 *
+         (3*x - 7*y + 2*z - 3)^5;
+poly q = (7*y*x^2*z^2 - 3*x*y*z + 11*(x+1)*y2 + 5*z + 1)^3 *
+         (3*x - 7*y + 2*z - 3)^6;
+g = gcd(p, q);
+timer - tinit;
+tinit = timer;
+print("G+");
+factorize(g);
+timer - tinit;
+kill(g, p, q);
+
+// Gp
+ring R = 181, (x, y, z), dp;
+int tiniti;
+poly g;
+tiniti = timer;
+print("Gp");
+poly p = (7*y*x^2*z^2 - 3*x*y*z + 11*(x+1)*y2 + 5*z + 1)^4 *
+         (3*x - 7*y + 2*z - 3)^5;
+poly q = (7*y*x^2*z^2 - 3*x*y*z + 11*(x+1)*y2 + 5*z + 1)^3 *
+         (3*x - 7*y + 2*z - 3)^6;
+g = gcd(p, q);
+timer - tiniti;
+tiniti = timer;
+print("Gp+");
+factorize(g);
+timer - tiniti;
+kill(g, p, q);
+
+// H
+proc hilbert (int n)
+{
+   matrix a[n][n];
+   int j;
+   for (int i = 1; i <= n; i++)
+      {
+      for (j = 1; j <= n; j++)
+         {
+         a[i, j] = 1/(number(i) + number(j) - 1);
+         }
+      }
+   return(a);
+}
+ring R = 0, x, dp;
+number tinit;
+matrix h80[80][80];
+h80 = hilbert(80);
+tinit = timer;
+print("H");
+det(h80);
+timer - tinit;
+kill(h80);
+
+// I, J, K, L --- cannot invert matrices
+
+// M1
+ring R = 0, (x1, x2, x3, x4, x5), dp;
+number tinit;
+matrix w[26][11];
+w =        1,  1, 1,  7, x4 , 12, x3 , 17, x2 , 22, x1,
+           2,  2, 1,  8, x4 , 13, x3 , 18, x2 , 23, x1,
+           3,  3, 1,  9, x4 , 14, x3 , 19, x2 , 24, x1,
+           4,  4, 1, 10, x4 , 15, x3 , 20, x2 , 25, x1,
+           5,  5, 1, 26, 1, 1, 0, 1, 0, 1, 0,
+           6,  2, x5 ,  6, 1, 12, x3 , 17, x2 , 22, x1,
+           7,  3, x5 ,  7, 1, 13, x3 , 18, x2 , 23, x1,
+           8,  4, x5 ,  8, 1, 14, x3 , 19, x2 , 24, x1,
+           9,  5, x5 ,  9, 1, 15, x3 , 20, x2 , 25, x1,
+          10, 10, 1, 26, 1, 1, 0, 1, 0, 1, 0,
+          11,  2, x5 ,  7, x4 , 11, 1, 17, x2 , 22, x1,
+          12,  3, x5 ,  8, x4 , 12, 1, 18, x2 , 23, x1,
+          13,  4, x5 ,  9, x4 , 13, 1, 19, x2 , 24, x1,
+          14,  5, x5 , 10, x4 , 14, 1, 20, x2 , 25, x1,
+          15, 15, 1, 26, 1, 1, 0, 1, 0, 1, 0,
+          16,  2, x5 ,  7, x4 , 12, x3 , 16, 1, 22, x1,
+          17,  3, x5 ,  8, x4 , 13, x3 , 17, 1, 23, x1,
+          18,  4, x5 ,  9, x4 , 14, x3 , 18, 1, 24, x1,
+          19,  5, x5 , 10, x4 , 15, x3 , 19, 1, 25, x1,
+          20, 20, 1, 26, 1, 1, 0, 1, 0, 1, 0,
+          21,  2, x5 ,  7, x4 , 12, x3 , 17, x2 , 21, 1,
+          22,  3, x5 ,  8, x4 , 13, x3 , 18, x2 , 22, 1,
+          23,  4, x5 ,  9, x4 , 14, x3 , 19, x2 , 23, 1,
+          24,  5, x5 , 10, x4 , 15, x3 , 20, x2 , 24, 1,
+          25, 25, 1, 26, 1, 1, 0, 1, 0, 1, 0,
+          26,  1, x5 ,  6, x4 , 11, x3 , 16, x2 , 21, x1;
+
+matrix m[26][26];
+int j;
+for (int i = 1; i <= 26; i++)
+   {
+   for (j = 1; j <= 5; j++)
+      {
+      m[i, int(w[i, 2*j])] = w[i, 2*j+1];
+      }
+   }
+tinit = timer;
+print("M1");
+det(m);
+timer - tinit;
+kill(m, w);
+
+// M2
+ring R = 0, (x1, x2, x3, x4, x5, x6, x7, x8, x9, x10), dp;
+number tinit;
+matrix w[101][21];
+w =     1,  1, 1, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1 ,
+           2,  2, 1, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1 ,
+           3,  3, 1, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1 ,
+           4,  4, 1, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1 ,
+           5,  5, 1, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1 ,
+           6,  6, 1, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1 ,
+           7,  7, 1, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1 ,
+           8,  8, 1, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1 ,
+           9,  9, 1, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1 ,
+          10, 10, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          11,  2, x10, 11, 1, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1 ,
+          12,  3, x10, 12, 1, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1 ,
+          13,  4, x10, 13, 1, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1 ,
+          14,  5, x10, 14, 1, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1 ,
+          15,  6, x10, 15, 1, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1 ,
+          16,  7, x10, 16, 1, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1 ,
+          17,  8, x10, 17, 1, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1 ,
+          18,  9, x10, 18, 1, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1 ,
+          19, 10, x10, 19, 1, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1 ,
+          20, 20, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          21,  2, x10, 12, x9, 21, 1, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1 ,
+          22,  3, x10, 13, x9, 22, 1, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1 ,
+          23,  4, x10, 14, x9, 23, 1, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1 ,
+          24,  5, x10, 15, x9, 24, 1, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1 ,
+          25,  6, x10, 16, x9, 25, 1, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1 ,
+          26,  7, x10, 17, x9, 26, 1, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1 ,
+          27,  8, x10, 18, x9, 27, 1, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1 ,
+          28,  9, x10, 19, x9, 28, 1, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1 ,
+          29, 10, x10, 20, x9, 29, 1, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1 ,
+          30, 30, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          31,  2, x10, 12, x9, 22, x8, 31, 1, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1 ,
+          32,  3, x10, 13, x9, 23, x8, 32, 1, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1 ,
+          33,  4, x10, 14, x9, 24, x8, 33, 1, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1 ,
+          34,  5, x10, 15, x9, 25, x8, 34, 1, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1 ,
+          35,  6, x10, 16, x9, 26, x8, 35, 1, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1 ,
+          36,  7, x10, 17, x9, 27, x8, 36, 1, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1 ,
+          37,  8, x10, 18, x9, 28, x8, 37, 1, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1 ,
+          38,  9, x10, 19, x9, 29, x8, 38, 1, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1 ,
+          39, 10, x10, 20, x9, 30, x8, 39, 1, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1 ,
+          40, 40, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          41,  2, x10, 12, x9, 22, x8, 32, x7, 41, 1, 52, x5, 62, x4, 72, x3, 82, x2, 92, x1 ,
+          42,  3, x10, 13, x9, 23, x8, 33, x7, 42, 1, 53, x5, 63, x4, 73, x3, 83, x2, 93, x1 ,
+          43,  4, x10, 14, x9, 24, x8, 34, x7, 43, 1, 54, x5, 64, x4, 74, x3, 84, x2, 94, x1 ,
+          44,  5, x10, 15, x9, 25, x8, 35, x7, 44, 1, 55, x5, 65, x4, 75, x3, 85, x2, 95, x1 ,
+          45,  6, x10, 16, x9, 26, x8, 36, x7, 45, 1, 56, x5, 66, x4, 76, x3, 86, x2, 96, x1 ,
+          46,  7, x10, 17, x9, 27, x8, 37, x7, 46, 1, 57, x5, 67, x4, 77, x3, 87, x2, 97, x1 ,
+          47,  8, x10, 18, x9, 28, x8, 38, x7, 47, 1, 58, x5, 68, x4, 78, x3, 88, x2, 98, x1 ,
+          48,  9, x10, 19, x9, 29, x8, 39, x7, 48, 1, 59, x5, 69, x4, 79, x3, 89, x2, 99, x1 ,
+          49, 10, x10, 20, x9, 30, x8, 40, x7, 49, 1, 60, x5, 70, x4, 80, x3, 90, x2, 100, x1 ,
+          50, 50, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          51,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 51, 1, 62, x4, 72, x3, 82, x2, 92, x1 ,
+          52,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 52, 1, 63, x4, 73, x3, 83, x2, 93, x1 ,
+          53,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 53, 1, 64, x4, 74, x3, 84, x2, 94, x1 ,
+          54,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 54, 1, 65, x4, 75, x3, 85, x2, 95, x1 ,
+          55,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 55, 1, 66, x4, 76, x3, 86, x2, 96, x1 ,
+          56,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 56, 1, 67, x4, 77, x3, 87, x2, 97, x1 ,
+          57,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 57, 1, 68, x4, 78, x3, 88, x2, 98, x1 ,
+          58,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 58, 1, 69, x4, 79, x3, 89, x2, 99, x1 ,
+          59, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 59, 1, 70, x4, 80, x3, 90, x2, 100, x1 ,
+          60, 60, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          61,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 61,   1, 72, x3, 82, x2, 92, x1 ,
+          62,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 62,   1, 73, x3, 83, x2, 93, x1 ,
+          63,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 63,   1, 74, x3, 84, x2, 94, x1 ,
+          64,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 64,   1, 75, x3, 85, x2, 95, x1 ,
+          65,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 65,   1, 76, x3, 86, x2, 96, x1 ,
+          66,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 66,   1, 77, x3, 87, x2, 97, x1 ,
+          67,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 67,   1, 78, x3, 88, x2, 98, x1 ,
+          68,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 68,   1, 79, x3, 89, x2, 99, x1 ,
+          69, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 69,   1, 80, x3, 90, x2, 100, x1 ,
+          70, 70, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          71,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 71,   1, 82, x2, 92, x1 ,
+          72,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 72,   1, 83, x2, 93, x1 ,
+          73,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 73,   1, 84, x2, 94, x1 ,
+          74,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 74,   1, 85, x2, 95, x1 ,
+          75,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 75,   1, 86, x2, 96, x1 ,
+          76,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 76,   1, 87, x2, 97, x1 ,
+          77,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 77,   1, 88, x2, 98, x1 ,
+          78,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 78,   1, 89, x2, 99, x1 ,
+          79, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 79,   1, 90, x2, 100, x1 ,
+          80, 80, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          81,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 81,   1, 92, x1 ,
+          82,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 82,   1, 93, x1 ,
+          83,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 83,   1, 94, x1 ,
+          84,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 84,   1, 95, x1 ,
+          85,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 85,   1, 96, x1 ,
+          86,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 86,   1, 97, x1 ,
+          87,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 87,   1, 98, x1 ,
+          88,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 88,   1, 99, x1 ,
+          89, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 89,   1, 100, x1 ,
+          90, 90, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          91,  2, x10, 12, x9, 22, x8, 32, x7, 42, x6, 52, x5, 62, x4, 72, x3, 82, x2, 91,   1 ,
+          92,  3, x10, 13, x9, 23, x8, 33, x7, 43, x6, 53, x5, 63, x4, 73, x3, 83, x2, 92,   1 ,
+          93,  4, x10, 14, x9, 24, x8, 34, x7, 44, x6, 54, x5, 64, x4, 74, x3, 84, x2, 93,   1 ,
+          94,  5, x10, 15, x9, 25, x8, 35, x7, 45, x6, 55, x5, 65, x4, 75, x3, 85, x2, 94,   1 ,
+          95,  6, x10, 16, x9, 26, x8, 36, x7, 46, x6, 56, x5, 66, x4, 76, x3, 86, x2, 95,   1 ,
+          96,  7, x10, 17, x9, 27, x8, 37, x7, 47, x6, 57, x5, 67, x4, 77, x3, 87, x2, 96,   1 ,
+          97,  8, x10, 18, x9, 28, x8, 38, x7, 48, x6, 58, x5, 68, x4, 78, x3, 88, x2, 97,   1 ,
+          98,  9, x10, 19, x9, 29, x8, 39, x7, 49, x6, 59, x5, 69, x4, 79, x3, 89, x2, 98,   1 ,
+          99, 10, x10, 20, x9, 30, x8, 40, x7, 50, x6, 60, x5, 70, x4, 80, x3, 90, x2, 99,   1 ,
+          100, 100, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          101,  1, x10, 11, x9, 21, x8, 31, x7, 41, x6, 51, x5, 61, x4, 71, x3, 81, x2, 91, x1;
+
+matrix m[101][101];
+int j;
+for (int i = 1; i <= 101; i++)
+   {
+   for (j = 1; j <= 10; j++)
+      {
+      m[i, int(w[i, 2*j])] = w[i, 2*j+1];
+      }
+   }
+tinit = timer;
+print("M2");
+det(m);
+timer - tinit;
+kill(m, w);
+
+// N
+ring R = 0, (l1, l2, n11, n22, g, p11, p12, p21, p22, q1, q2, q3, q4,
+             a12, a21, a22), dp;
+number tinit;
+qring Q;
+tinit = timer;
+print("N");
+poly res1 = p11*p22*q1^2*q4^2-p12*p21*q1^2*q4^2-n22*p11*p22*q1*q4^2+2*n11*p11*p22*q1*q4^2-
+p11*p22*q1*q4^2+n22*p12*p21*q1*q4^2-2*n11*p12*p21*q1*q4^2+p12*p21*q1*q4^2+2*g^2*
+p11*p22*q4^2-2*n11*n22*p11*p22*q4^2+2*n22*p11*p22*q4^2+2*n11*p11*p22*q4^2-2*p11*p22*
+q4^2-2*g^2*p12*p21*q4^2+2*n11*n22*p12*p21*q4^2-2*n22*p12*p21*q4^2-2*n11*p12*p21*q4^2+
+2*p12*p21*q4^2-n11*p22*q1*q2*q3*q4+g*p21*q1*q2*q3*q4+g*p12*q1*q2*q3*q4-n22*p11*
+q1*q2*q3*q4-g^2*p22*q2*q3*q4+n11*n22*p22*q2*q3*q4-n11*p22*q2*q3*q4-2*g*p21*q2*q3*
+q4+g*p12*q2*q3*q4+2*g^2*p11*q2*q3*q4-2*n11*n22*p11*q2*q3*q4+2*n22*p11*q2*q3*q4-n11*
+p22*q1*q3*q4+p22*q1*q3*q4+g*p21*q1*q3*q4-2*g*p12*q1*q3*q4+2*n22*p11*q1*q3*q4-2*p11*
+q1*q3*q4-g^2*p22*q3*q4+n11*n22*p22*q3*q4-n22*p22*q3*q4-n11*p22*q3*q4+p22*q3*q4-
+4*g^2*p11*q3*q4+4*n11*n22*p11*q3*q4-4*n22*p11*q3*q4-4*n11*p11*q3*q4+4*p11*q3*q4+
+n22*p11*p22*q1*q2*q4-2*n11*p11*p22*q1*q2*q4+2*n11*p22*q1*q2*q4-n22*p12*p21*q1*q2*
+q4+2*n11*p12*p21*q1*q2*q4+g*p21*q1*q2*q4-2*g*p12*q1*q2*q4-n22*p11*q1*q2*q4-4*g^2*
+p11*p22*q2*q4+4*n11*n22*p11*p22*q2*q4-2*n22*p11*p22*q2*q4-2*n11*p11*p22*q2*q4+2*g^2*
+p22*q2*q4-2*n11*n22*p22*q2*q4+2*n11*p22*q2*q4+4*g^2*p12*p21*q2*q4-4*n11*n22*p12*p21*
+q2*q4+2*n22*p12*p21*q2*q4+2*n11*p12*p21*q2*q4-2*g*p21*q2*q4-2*g*p12*q2*q4+2*g^2*p11*
+q2*q4-2*n11*n22*p11*q2*q4+2*n22*p11*q2*q4-p11*p22*q1^2*q4-p22*q1^2*q4+p12*p21*q1^2*
+q4+2*p11*q1^2*q4-n22*p11*p22*q1*q4-4*n11*p11*p22*q1*q4+5*p11*p22*q1*q4+n22*p22*q1*
+q4-p22*q1*q4+n22*p12*p21*q1*q4+4*n11*p12*p21*q1*q4-5*p12*p21*q1*q4+g*p21*q1*q4+
+4*g*p12*q1*q4+4*n11*p11*q1*q4-4*p11*q1*q4-g^2*q2^2*q3^2+n11*n22*q2^2*q3^2+g^2*
+q2*q3^2-n11*n22*q2*q3^2-n22*q2*q3^2+2*n11*q2*q3^2+2*g^2*q3^2-2*n11*n22*q3^2+2*n22*
+q3^2+2*n11*q3^2-2*q3^2+g^2*p22*q2^2*q3-n11*n22*p22*q2^2*q3-2*g^2*p11*q2^2*q3+2*n11*
+n22*p11*q2^2*q3+g^2*q2^2*q3-n11*n22*q2^2*q3+2*n11*p22*q1*q2*q3-2*g*p21*q1*q2*q3+
+g*p12*q1*q2*q3-n22*p11*q1*q2*q3+n22*q1*q2*q3-2*n11*q1*q2*q3+g^2*p22*q2*q3-n11*
+n22*p22*q2*q3+n22*p22*q2*q3+4*g*p21*q2*q3+g*p12*q2*q3+4*g^2*p11*q2*q3-4*n11*n22*
+p11*q2*q3+4*n11*p11*q2*q3-5*g^2*q2*q3+5*n11*n22*q2*q3-n22*q2*q3-4*n11*q2*q3+2*n11*
+p22*q1*q3-2*p22*q1*q3-2*g*p21*q1*q3-2*g*p12*q1*q3+2*n22*p11*q1*q3-2*p11*q1*q3-2*n22*
+q1*q3-2*n11*q1*q3+4*q1*q3+2*g^2*p11*p22*q2^2-2*n11*n22*p11*p22*q2^2-2*g^2*p22*q2^2+
+2*n11*n22*p22*q2^2-2*g^2*p12*p21*q2^2+2*n11*n22*p12*p21*q2^2-2*g^2*p11*q2^2+2*n11*
+n22*p11*q2^2+2*g^2*q2^2-2*n11*n22*q2^2+n22*p11*p22*q1*q2+4*n11*p11*p22*q1*q2-n22*
+p22*q1*q2-4*n11*p22*q1*q2-n22*p12*p21*q1*q2-4*n11*p12*p21*q1*q2-n22*p11*q1*q2-4*
+n11*p11*q1*q2+n22*q1*q2+4*n11*q1*q2-2*p11*p22*q1^2+2*p22*q1^2+2*p12*p21*q1^2+2*p11*
+q1^2-2*q1^2;
+
+poly ss1 = (4*g*a22^3-g*a12*a21*a22^2-4*n22*a21*a22^2+4*n11*a21*a22^2+7*g*a12*a22^2+4*g^2*a22^2-
+4*n11*n22*a22^2+4*n11*a22^2+n22*a12*a21^2*a22-n11*a12*a21^2*a22-4*g*a21^2*a22-
+g*a12^2*a21*a22-5*g^2*a12*a21*a22+5*n11*n22*a12*a21*a22-7*n22*a12*a21*a22+2*n11*a12*
+a21*a22-4*g*a21*a22+3*g*a12^2*a22+3*g^2*a12*a22-3*n11*n22*a12*a22+3*n11*a12*a22+g*
+a12*a21^3+g^2*a12^2*a21^2-n11*n22*a12^2*a21^2+n22*a12^2*a21^2-2*g*a12*a21^2-3*g^2*
+a12^2*a21+3*n11*n22*a12^2*a21-3*n22*a12^2*a21-3*g*a12*a21)/(3*g*a12*a21*a22^2-3*n22*
+a21*a22^2+g*a12*a22^2-n22*a22^2+3*n11*a12*a21^2*a22-3*g*a21^2*a22+5*g*a12^2*a21*
+a22-5*n22*a12*a21*a22+4*n11*a12*a21*a22-4*g*a21*a22+g*a12^2*a22-n22*a12*a22+n11*
+a12*a22-g*a22+2*n11*a12^2*a21^2-2*g*a12*a21^2+2*g*a12^3*a21-2*n22*a12^2*a21+2*n11*
+a12^2*a21-2*g*a12*a21);
+
+poly ss2 = (4*g*a12*a22^2-4*n22*a22^2+4*a22^2-g*a12^2*a21*a22+n22*a12*a21*a22+4*n11*a12*a21*
+a22-5*a12*a21*a22-4*g*a21*a22+3*g*a12^2*a22-3*n22*a12*a22+3*a12*a22-n11*a12^2*a21^2+
+a12^2*a21^2+g*a12*a21^2+3*n11*a12^2*a21-3*a12^2*a21-3*g*a12*a21)/(2*g*a12*a22^2-
+2*n22*a22^2+g*a12^2*a21*a22-n22*a12*a21*a22+2*n11*a12*a21*a22-2*g*a21*a22+2*g*a12^2*
+a22-2*n22*a12*a22+2*n11*a12*a22-2*g*a22+n11*a12^2*a21^2-g*a12*a21^2+g*a12^3*a21-
+n22*a12^2*a21+n11*a12^2*a21-g*a12*a21);
+
+poly ss3 = (4*p21*a22^3-p21*a12*a21*a22^2-4*p22*a21*a22^2+4*p11*a21*a22^2+7*p21*a12*a22^2-4*
+p11*p22*a22^2+4*p12*p21*a22^2+4*p11*a22^2+p22*a12*a21^2*a22-p11*a12*a21^2*a22-4*
+p12*a21^2*a22-p21*a12^2*a21*a22+5*p11*p22*a12*a21*a22-7*p22*a12*a21*a22-5*p12*p21*
+a12*a21*a22+2*p11*a12*a21*a22-4*p12*a21*a22+3*p21*a12^2*a22-3*p11*p22*a12*a22+3*p12*
+p21*a12*a22+3*p11*a12*a22+p12*a12*a21^3-p11*p22*a12^2*a21^2+p22*a12^2*a21^2+p12*
+p21*a12^2*a21^2-2*p12*a12*a21^2+3*p11*p22*a12^2*a21-3*p22*a12^2*a21-3*p12*p21*a12^2*
+a21-3*p12*a12*a21)/(3*p21*a12*a21*a22^2-3*p22*a21*a22^2+p21*a12*a22^2-p22*a22^2+
+3*p11*a12*a21^2*a22-3*p12*a21^2*a22+5*p21*a12^2*a21*a22-5*p22*a12*a21*a22+4*p11*a12*
+a21*a22-4*p12*a21*a22+p21*a12^2*a22-p22*a12*a22+p11*a12*a22-p12*a22+2*p11*a12^2*
+a21^2-2*p12*a12*a21^2+2*p21*a12^3*a21-2*p22*a12^2*a21+2*p11*a12^2*a21-2*p12*a12*a21);
+
+poly ss4 = (4*p21*a12*a22^2-4*p22*a22^2+4*a22^2-p21*a12^2*a21*a22+p22*a12*a21*a22+4*p11*a12*
+a21*a22-5*a12*a21*a22-4*p12*a21*a22+3*p21*a12^2*a22-3*p22*a12*a22+3*a12*a22-p11*a12^2*
+a21^2+a12^2*a21^2+p12*a12*a21^2+3*p11*a12^2*a21-3*a12^2*a21-3*p12*a12*a21)/(2*p21*
+a12*a22^2-2*p22*a22^2+p21*a12^2*a21*a22-p22*a12*a21*a22+2*p11*a12*a21*a22-2*p12*
+a21*a22+2*p21*a12^2*a22-2*p22*a12*a22+2*p11*a12*a22-2*p12*a22+p11*a12^2*a21^2-p12*
+a12*a21^2+p21*a12^3*a21-p22*a12^2*a21+p11*a12^2*a21-p12*a12*a21);
+
+q1 = ss1;
+q2 = ss2;
+q3 = ss3;
+q4 = ss4;
+res1;
+timer - tinit;
+
+kill(res1, ss1, ss2, ss3, ss4);
+
+// O1 and O2
+ring R = 0, (a1, a2, a3, a4, a5, a6, b1, b2, b3, b4, b5, b6,
+             c1, c2, c3, c4, c5, c6, w, x, y, z), dp;
+number tinit;
+poly f = a6*y^2 + a5*y*z + a4*y*w + a3*z^2 + a2*z*w + a1*w^2;
+
+poly g = b6*y^2 + b5*y*z + b4*y*w + b3*z^2 + b2*z*w + b1*w^2;
+
+poly h = c6*y^2 + c5*y*z + c4*y*w + c3*z^2 + c2*z*w + c1*w^2;
+
+matrix d1[15][15];
+matrix d2[15][15];
+matrix d3[15][15];
+d1 =         a6, a5, a4, a3, a2, a1, 0,  0,  0,  0,  0,  0,  0,  0,  0 ,
+             0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0 ,
+             0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0,  0 ,
+             0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0 ,
+             0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1 ,
+             0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0,  0 ,
+             0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0 ,
+             0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0 ,
+             0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1 ,
+             0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1 ,
+             0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0 ,
+             0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0 ;
+
+d2 =         b6, b5, b4, b3, b2, b1, 0,  0,  0,  0,  0,  0,  0,  0,  0 ,
+             0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0 ,
+             0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0,  0 ,
+             0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0 ,
+             0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1 ,
+             0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0,  0 ,
+             0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0 ,
+             0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0 ,
+             0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1 ,
+             0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1 ,
+             0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0 ,
+             0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0 ;
+
+d3 =         c6, c5, c4, c3, c2, c1, 0,  0,  0,  0,  0,  0,  0,  0,  0 ,
+             0,  0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0 ,
+             0,  c6, 0,  c5, c4, 0,  c3, c2, c1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0,  0 ,
+             0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1, 0 ,
+             0,  0,  0,  0,  0,  c6, 0,  0,  c5, c4, 0,  0,  c3, c2, c1 ,
+             0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0,  0 ,
+             0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1, 0 ,
+             0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  a6, 0,  a5, a4, 0,  a3, a2, a1, 0,  0,  0,  0,  0 ,
+             0,  0,  0,  0,  0,  a6, 0,  0,  a5, a4, 0,  0,  a3, a2, a1 ,
+             0,  0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1 ,
+             0,  0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0 ,
+             0,  b6, 0,  b5, b4, 0,  b3, b2, b1, 0,  0,  0,  0,  0,  0 ,
+             0,  0,  0,  0,  b6, 0,  0,  b5, b4, 0,  0,  b3, b2, b1, 0 ;
+
+// O1
+tinit = timer;
+print("O1");
+poly det1 = det(d1);
+poly det2 = det(d2);
+poly det3 = det(d3);
+timer - tinit;
+// O2
+tinit = timer;
+print("O2");
+gcd(gcd(det1, det2), det3);
+timer - tinit;
+kill(f, g, h, d1, d2, d3, det1, det2, det3);
+
+// P, P', Q, Q', T and W1
+ring R = 0, x, dp;
+number tinit;
+matrix d[20][20];
+d =     -517,-540,-90,-353,-1086,-1315,-187,168,-317,-1426,-754,-83,542,-215,538,-1471,-885,-925,373,1344 ,
+         1210,-716,-1241,-444,50,168,1162,-233,1325,185,769,519,1187,760,1332,849,-795,-956,-956,461 ,
+         -500,1003,-1447,-180,678,-195,446,1447,-342,141,-779,294,879,-119,86,-888,746,911,1209,-85 ,
+         294,-967,1224,842,1120,803,584,-325,-1257,-1497,50,-343,1088,-293,1491,-841,421,-880,-678,-758 ,
+           -793,-193,290,-1254,14,-713,-1359,-1255,1424,517,785,1157,-640,-873,851,611,669,1450,105,918 ,
+           -1369,515,289,1231,-1206,-991,1342,899,851,-1355,505,-1462,268,376,414,1099,-1297,97,-565,751 ,
+           178,548,1170,-744,130,-1238,111,-447,-788,-285,374,-293,-424,-1364,-394,899,-1031,-524,403,-436 ,
+           557,-414,-130,311,-1346,-1439,-293,1341,420,-775,-999,-1457,-1183,-819,303,-661,407,177,-327,820 ,
+           539,-64,-613,1164,-827,931,1361,1050,1260,362,-977,-634,1105,-1172,653,-658,-1426,-264,507,-272 ,
+           392,253,92,895,-487,619,1286,-124,-743,-904,824,180,511,-57,1362,642,-14,782,386,-396 ,
+           -685,-934,483,-659,-13,-232,861,1076,-950,-671,1414,-769,260,28,232,-1037,636,-1180,1116,1310 ,
+         1319,-276,-936,-1149,873,196,-1488,-626,-150,-1172,-1319,-92,-1163,659,345,1036,-265,-587,-959,-986 ,
+           -81,1015,1062,-1162,907,-555,-51,712,-706,277,-300,1061,-1067,449,-1453,-1296,3,1034,-238,383 ,
+           1150,-460,-1073,-907,255,-1407,-872,-1433,-282,705,925,-263,1367,740,40,1425,88,-418,-86,1175 ,
+           -1491,791,-1476,1150,-496,-809,-781,98,715,1372,157,-397,1460,732,576,1265,-133,1083,-945,95 ,
+        -1302,1271,-371,66,-468,484,-217,175,-1254,1274,267,-609,-1161,-1497,-607,-104,-1418,-444,-1403,1259 ,
+           -1015,1351,893,557,-631,1172,1308,-1196,996,104,972,346,-810,198,-690,52,-1137,1373,-708,662 ,
+           627,-266,-478,1109,-874,1399,735,874,-46,-802,962,1494,1193,-742,524,969,-668,-758,-1346,1207 ,
+           -705,1356,-123,-100,-1343,-603,-756,-643,-637,61,879,15,-1009,244,89,-51,-257,-1289,511,-1093 ,
+           599,1079,-976,1486,852,-685,-378,-386,1333,814,1483,-1171,-383,845,729,244,304,533,810,-724 ;
+
+matrix w[101][21];
+w =        1,  1, 1, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+           2,  2, 1, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+           3,  3, 1, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+           4,  4, 1, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+           5,  5, 1, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+           6,  6, 1, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+           7,  7, 1, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+           8,  8, 1, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+           9,  9, 1, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          10, 10, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          11,  2, 10, 11, 1, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          12,  3, 10, 12, 1, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          13,  4, 10, 13, 1, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          14,  5, 10, 14, 1, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          15,  6, 10, 15, 1, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          16,  7, 10, 16, 1, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          17,  8, 10, 17, 1, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          18,  9, 10, 18, 1, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          19, 10, 10, 19, 1, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          20, 20, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          21,  2, 10, 12, 9, 21, 1, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          22,  3, 10, 13, 9, 22, 1, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          23,  4, 10, 14, 9, 23, 1, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          24,  5, 10, 15, 9, 24, 1, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          25,  6, 10, 16, 9, 25, 1, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          26,  7, 10, 17, 9, 26, 1, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          27,  8, 10, 18, 9, 27, 1, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          28,  9, 10, 19, 9, 28, 1, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          29, 10, 10, 20, 9, 29, 1, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          30, 30, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          31,  2, 10, 12, 9, 22, 8, 31, 1, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          32,  3, 10, 13, 9, 23, 8, 32, 1, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          33,  4, 10, 14, 9, 24, 8, 33, 1, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          34,  5, 10, 15, 9, 25, 8, 34, 1, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          35,  6, 10, 16, 9, 26, 8, 35, 1, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          36,  7, 10, 17, 9, 27, 8, 36, 1, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          37,  8, 10, 18, 9, 28, 8, 37, 1, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          38,  9, 10, 19, 9, 29, 8, 38, 1, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          39, 10, 10, 20, 9, 30, 8, 39, 1, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          40, 40, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          41,  2, 10, 12, 9, 22, 8, 32, 7, 41, 1, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          42,  3, 10, 13, 9, 23, 8, 33, 7, 42, 1, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          43,  4, 10, 14, 9, 24, 8, 34, 7, 43, 1, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          44,  5, 10, 15, 9, 25, 8, 35, 7, 44, 1, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          45,  6, 10, 16, 9, 26, 8, 36, 7, 45, 1, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          46,  7, 10, 17, 9, 27, 8, 37, 7, 46, 1, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          47,  8, 10, 18, 9, 28, 8, 38, 7, 47, 1, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          48,  9, 10, 19, 9, 29, 8, 39, 7, 48, 1, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          49, 10, 10, 20, 9, 30, 8, 40, 7, 49, 1, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          50, 50, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          51,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 51, 1, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          52,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 52, 1, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          53,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 53, 1, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          54,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 54, 1, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          55,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 55, 1, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          56,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 56, 1, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          57,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 57, 1, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          58,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 58, 1, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          59, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 59, 1, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          60, 60, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          61,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 61,   1, 72, 3, 82, 2, 92, 1  ,
+          62,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 62,   1, 73, 3, 83, 2, 93, 1  ,
+          63,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 63,   1, 74, 3, 84, 2, 94, 1  ,
+          64,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 64,   1, 75, 3, 85, 2, 95, 1  ,
+          65,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 65,   1, 76, 3, 86, 2, 96, 1  ,
+          66,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 66,   1, 77, 3, 87, 2, 97, 1  ,
+          67,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 67,   1, 78, 3, 88, 2, 98, 1  ,
+          68,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 68,   1, 79, 3, 89, 2, 99, 1  ,
+          69, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 69,   1, 80, 3, 90, 2, 100, 1  ,
+          70, 70, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          71,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 71,   1, 82, 2, 92, 1  ,
+          72,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 72,   1, 83, 2, 93, 1  ,
+          73,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 73,   1, 84, 2, 94, 1  ,
+          74,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 74,   1, 85, 2, 95, 1  ,
+          75,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 75,   1, 86, 2, 96, 1  ,
+          76,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 76,   1, 87, 2, 97, 1  ,
+          77,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 77,   1, 88, 2, 98, 1  ,
+          78,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 78,   1, 89, 2, 99, 1  ,
+          79, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 79,   1, 90, 2, 100, 1  ,
+          80, 80, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          81,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 81,   1, 92, 1  ,
+          82,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 82,   1, 93, 1  ,
+          83,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 83,   1, 94, 1  ,
+          84,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 84,   1, 95, 1  ,
+          85,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 85,   1, 96, 1  ,
+          86,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 86,   1, 97, 1  ,
+          87,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 87,   1, 98, 1  ,
+          88,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 88,   1, 99, 1  ,
+          89, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 89,   1, 100, 1  ,
+          90, 90, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          91,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 91,   1  ,
+          92,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 92,   1  ,
+          93,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 93,   1  ,
+          94,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 94,   1  ,
+          95,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 95,   1  ,
+          96,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 96,   1  ,
+          97,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 97,   1  ,
+          98,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 98,   1  ,
+          99, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 99,   1  ,
+          100, 100, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          101,  1, 10, 11, 9, 21, 8, 31, 7, 41, 6, 51, 5, 61, 4, 71, 3, 81, 2, 91, 1  ;
+
+matrix m[101][101];
+
+int i, j;
+for (int i = 1; i <= 101; i++)
+   {
+   for (j = 1; j <= 10; j++)
+      {
+      m[i, int(w[i, 2*j])] = w[i, 2*j+1];
+      }
+   }
+// P
+tinit = timer;
+print("P");
+det(m);
+timer - tinit;
+// Q
+proc ident (int n)
+{
+   matrix a[n][n];
+   for (int i = 1; i <= n; i++)
+      {
+      a[i, i] = 1;
+      }
+   return(a);
+}
+tinit = timer;
+print("Q");
+det(m - x*ident(101));
+timer - tinit;
+// T
+// Hermite form
+// W1
+// Smith form
+
+matrix m2[101][101];
+
+poly a;
+//m2 = m;
+for (i = 1; i <= 101; i++)
+   {
+   for (j = 1; j <= 101; j++)
+      {
+      m2[i, j] = m[i, j];
+      }
+   }
+for (i = 1; i <= 101; i++)
+   {
+   a = m2[i, 1];
+   for (j = 1; j <= 100; j++)
+      {
+      m2[i, j] = m2[i, j+1];
+      }
+   m2[i, 101] = a;
+   }
+for (i = 1; i <= 101; i++)
+   {
+   for (j = 1; j <= 101; j++)
+      {
+      if (m[i, j] <> 0)
+         {
+         m2[i, j] = m[i, j];
+         }
+      }
+   }
+
+// P'
+tinit = timer;
+print("P'");
+det(m2);
+timer - tinit;
+// Q'
+tinit = timer;
+print("Q'");
+det(m2 - x*ident(101));
+timer - tinit;
+
+kill(a, d, i, j, m, m2, w);
+
+// Pp, P'p, Qp and Q'p
+ring R = 181, x, dp;
+int tiniti;
+matrix d[20][20];
+d =     -517,-540,-90,-353,-1086,-1315,-187,168,-317,-1426,-754,-83,542,-215,538,-1471,-885,-925,373,1344 ,
+         1210,-716,-1241,-444,50,168,1162,-233,1325,185,769,519,1187,760,1332,849,-795,-956,-956,461 ,
+         -500,1003,-1447,-180,678,-195,446,1447,-342,141,-779,294,879,-119,86,-888,746,911,1209,-85 ,
+         294,-967,1224,842,1120,803,584,-325,-1257,-1497,50,-343,1088,-293,1491,-841,421,-880,-678,-758 ,
+           -793,-193,290,-1254,14,-713,-1359,-1255,1424,517,785,1157,-640,-873,851,611,669,1450,105,918 ,
+           -1369,515,289,1231,-1206,-991,1342,899,851,-1355,505,-1462,268,376,414,1099,-1297,97,-565,751 ,
+           178,548,1170,-744,130,-1238,111,-447,-788,-285,374,-293,-424,-1364,-394,899,-1031,-524,403,-436 ,
+           557,-414,-130,311,-1346,-1439,-293,1341,420,-775,-999,-1457,-1183,-819,303,-661,407,177,-327,820 ,
+           539,-64,-613,1164,-827,931,1361,1050,1260,362,-977,-634,1105,-1172,653,-658,-1426,-264,507,-272 ,
+           392,253,92,895,-487,619,1286,-124,-743,-904,824,180,511,-57,1362,642,-14,782,386,-396 ,
+           -685,-934,483,-659,-13,-232,861,1076,-950,-671,1414,-769,260,28,232,-1037,636,-1180,1116,1310 ,
+         1319,-276,-936,-1149,873,196,-1488,-626,-150,-1172,-1319,-92,-1163,659,345,1036,-265,-587,-959,-986 ,
+           -81,1015,1062,-1162,907,-555,-51,712,-706,277,-300,1061,-1067,449,-1453,-1296,3,1034,-238,383 ,
+           1150,-460,-1073,-907,255,-1407,-872,-1433,-282,705,925,-263,1367,740,40,1425,88,-418,-86,1175 ,
+           -1491,791,-1476,1150,-496,-809,-781,98,715,1372,157,-397,1460,732,576,1265,-133,1083,-945,95 ,
+        -1302,1271,-371,66,-468,484,-217,175,-1254,1274,267,-609,-1161,-1497,-607,-104,-1418,-444,-1403,1259 ,
+           -1015,1351,893,557,-631,1172,1308,-1196,996,104,972,346,-810,198,-690,52,-1137,1373,-708,662 ,
+           627,-266,-478,1109,-874,1399,735,874,-46,-802,962,1494,1193,-742,524,969,-668,-758,-1346,1207 ,
+           -705,1356,-123,-100,-1343,-603,-756,-643,-637,61,879,15,-1009,244,89,-51,-257,-1289,511,-1093 ,
+           599,1079,-976,1486,852,-685,-378,-386,1333,814,1483,-1171,-383,845,729,244,304,533,810,-724 ;
+
+matrix w[101][21];
+w =        1,  1, 1, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+           2,  2, 1, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+           3,  3, 1, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+           4,  4, 1, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+           5,  5, 1, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+           6,  6, 1, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+           7,  7, 1, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+           8,  8, 1, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+           9,  9, 1, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          10, 10, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0  ,
+          11,  2, 10, 11, 1, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          12,  3, 10, 12, 1, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          13,  4, 10, 13, 1, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          14,  5, 10, 14, 1, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          15,  6, 10, 15, 1, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          16,  7, 10, 16, 1, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          17,  8, 10, 17, 1, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          18,  9, 10, 18, 1, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          19, 10, 10, 19, 1, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          20, 20, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          21,  2, 10, 12, 9, 21, 1, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          22,  3, 10, 13, 9, 22, 1, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          23,  4, 10, 14, 9, 23, 1, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          24,  5, 10, 15, 9, 24, 1, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          25,  6, 10, 16, 9, 25, 1, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          26,  7, 10, 17, 9, 26, 1, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          27,  8, 10, 18, 9, 27, 1, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          28,  9, 10, 19, 9, 28, 1, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          29, 10, 10, 20, 9, 29, 1, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          30, 30, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          31,  2, 10, 12, 9, 22, 8, 31, 1, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          32,  3, 10, 13, 9, 23, 8, 32, 1, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          33,  4, 10, 14, 9, 24, 8, 33, 1, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          34,  5, 10, 15, 9, 25, 8, 34, 1, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          35,  6, 10, 16, 9, 26, 8, 35, 1, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          36,  7, 10, 17, 9, 27, 8, 36, 1, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          37,  8, 10, 18, 9, 28, 8, 37, 1, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          38,  9, 10, 19, 9, 29, 8, 38, 1, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          39, 10, 10, 20, 9, 30, 8, 39, 1, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          40, 40, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          41,  2, 10, 12, 9, 22, 8, 32, 7, 41, 1, 52, 5, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          42,  3, 10, 13, 9, 23, 8, 33, 7, 42, 1, 53, 5, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          43,  4, 10, 14, 9, 24, 8, 34, 7, 43, 1, 54, 5, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          44,  5, 10, 15, 9, 25, 8, 35, 7, 44, 1, 55, 5, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          45,  6, 10, 16, 9, 26, 8, 36, 7, 45, 1, 56, 5, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          46,  7, 10, 17, 9, 27, 8, 37, 7, 46, 1, 57, 5, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          47,  8, 10, 18, 9, 28, 8, 38, 7, 47, 1, 58, 5, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          48,  9, 10, 19, 9, 29, 8, 39, 7, 48, 1, 59, 5, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          49, 10, 10, 20, 9, 30, 8, 40, 7, 49, 1, 60, 5, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          50, 50, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          51,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 51, 1, 62, 4, 72, 3, 82, 2, 92, 1  ,
+          52,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 52, 1, 63, 4, 73, 3, 83, 2, 93, 1  ,
+          53,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 53, 1, 64, 4, 74, 3, 84, 2, 94, 1  ,
+          54,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 54, 1, 65, 4, 75, 3, 85, 2, 95, 1  ,
+          55,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 55, 1, 66, 4, 76, 3, 86, 2, 96, 1  ,
+          56,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 56, 1, 67, 4, 77, 3, 87, 2, 97, 1  ,
+          57,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 57, 1, 68, 4, 78, 3, 88, 2, 98, 1  ,
+          58,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 58, 1, 69, 4, 79, 3, 89, 2, 99, 1  ,
+          59, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 59, 1, 70, 4, 80, 3, 90, 2, 100, 1  ,
+          60, 60, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          61,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 61,   1, 72, 3, 82, 2, 92, 1  ,
+          62,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 62,   1, 73, 3, 83, 2, 93, 1  ,
+          63,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 63,   1, 74, 3, 84, 2, 94, 1  ,
+          64,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 64,   1, 75, 3, 85, 2, 95, 1  ,
+          65,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 65,   1, 76, 3, 86, 2, 96, 1  ,
+          66,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 66,   1, 77, 3, 87, 2, 97, 1  ,
+          67,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 67,   1, 78, 3, 88, 2, 98, 1  ,
+          68,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 68,   1, 79, 3, 89, 2, 99, 1  ,
+          69, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 69,   1, 80, 3, 90, 2, 100, 1  ,
+          70, 70, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          71,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 71,   1, 82, 2, 92, 1  ,
+          72,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 72,   1, 83, 2, 93, 1  ,
+          73,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 73,   1, 84, 2, 94, 1  ,
+          74,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 74,   1, 85, 2, 95, 1  ,
+          75,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 75,   1, 86, 2, 96, 1  ,
+          76,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 76,   1, 87, 2, 97, 1  ,
+          77,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 77,   1, 88, 2, 98, 1  ,
+          78,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 78,   1, 89, 2, 99, 1  ,
+          79, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 79,   1, 90, 2, 100, 1  ,
+          80, 80, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          81,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 81,   1, 92, 1  ,
+          82,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 82,   1, 93, 1  ,
+          83,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 83,   1, 94, 1  ,
+          84,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 84,   1, 95, 1  ,
+          85,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 85,   1, 96, 1  ,
+          86,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 86,   1, 97, 1  ,
+          87,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 87,   1, 98, 1  ,
+          88,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 88,   1, 99, 1  ,
+          89, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 89,   1, 100, 1  ,
+          90, 90, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          91,  2, 10, 12, 9, 22, 8, 32, 7, 42, 6, 52, 5, 62, 4, 72, 3, 82, 2, 91,   1  ,
+          92,  3, 10, 13, 9, 23, 8, 33, 7, 43, 6, 53, 5, 63, 4, 73, 3, 83, 2, 92,   1  ,
+          93,  4, 10, 14, 9, 24, 8, 34, 7, 44, 6, 54, 5, 64, 4, 74, 3, 84, 2, 93,   1  ,
+          94,  5, 10, 15, 9, 25, 8, 35, 7, 45, 6, 55, 5, 65, 4, 75, 3, 85, 2, 94,   1  ,
+          95,  6, 10, 16, 9, 26, 8, 36, 7, 46, 6, 56, 5, 66, 4, 76, 3, 86, 2, 95,   1  ,
+          96,  7, 10, 17, 9, 27, 8, 37, 7, 47, 6, 57, 5, 67, 4, 77, 3, 87, 2, 96,   1  ,
+          97,  8, 10, 18, 9, 28, 8, 38, 7, 48, 6, 58, 5, 68, 4, 78, 3, 88, 2, 97,   1  ,
+          98,  9, 10, 19, 9, 29, 8, 39, 7, 49, 6, 59, 5, 69, 4, 79, 3, 89, 2, 98,   1  ,
+          99, 10, 10, 20, 9, 30, 8, 40, 7, 50, 6, 60, 5, 70, 4, 80, 3, 90, 2, 99,   1  ,
+          100, 100, 1, 101, 1, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0, 1,0   ,
+          101,  1, 10, 11, 9, 21, 8, 31, 7, 41, 6, 51, 5, 61, 4, 71, 3, 81, 2, 91, 1  ;
+
+matrix m[101][101];
+proc fudge (int n)
+{
+      if (n >= 1)
+         {
+         return(n);
+         }
+      else
+         {
+         return(n + 181);
+         }
+}
+int i, j;
+for (i = 1; i <= 101; i++)
+   {
+   for (j = 1; j <= 10; j++)
+      {
+      m[i, fudge(int(w[i, 2*j]))] = w[i, 2*j+1];
+      }
+   }
+// Pp
+tiniti = timer;
+print("Pp");
+det(m);
+timer - tiniti;
+// Qp
+proc ident (int n)
+{
+   matrix a[n][n];
+   for (int i = 1; i <= n; i++)
+      {
+      a[i, i] = 1;
+      }
+   return(a);
+}
+tiniti = timer;
+print("Qp");
+det(m - x*ident(101));
+timer - tiniti;
+
+matrix m2[101][101];
+
+poly a;
+int i, j;
+//m2 = m;
+for (i = 1; i <= 101; i++)
+   {
+   for (j = 1; j <= 101; j++)
+      {
+      m2[i, j] = m[i, j];
+      }
+   }
+for (i = 1; i <= 101; i++)
+   {
+   a = m2[i, 1];
+   for (j = 1; j <= 100; j++)
+      {
+      m2[i, j] = m2[i, j+1];
+      }
+   m2[i, 101] = a;
+   }
+for (i = 1; i <= 101; i++)
+   {
+   for (j = 1; j <= 101; j++)
+      {
+      if (m[i, j] <> 0)
+         {
+         m2[i, j] = m[i, j];
+         }
+      }
+   }
+
+// P'p
+tiniti = timer;
+print("P'p");
+det(m2);
+timer - tiniti;
+// Q'p
+tiniti = timer;
+print("Q'p");
+det(m2 - x*ident(101));
+timer - tiniti;
+
+kill(a, d, i, j, m, m2, w);
+
+// S and U
+ring R = 0, x, dp;
+number tinit;
+matrix d[20][20];
+d =     -517,-540,-90,-353,-1086,-1315,-187,168,-317,-1426,-754,-83,542,-215,538,-1471,-885,-925,373,1344 ,
+         1210,-716,-1241,-444,50,168,1162,-233,1325,185,769,519,1187,760,1332,849,-795,-956,-956,461 ,
+         -500,1003,-1447,-180,678,-195,446,1447,-342,141,-779,294,879,-119,86,-888,746,911,1209,-85 ,
+         294,-967,1224,842,1120,803,584,-325,-1257,-1497,50,-343,1088,-293,1491,-841,421,-880,-678,-758 ,
+           -793,-193,290,-1254,14,-713,-1359,-1255,1424,517,785,1157,-640,-873,851,611,669,1450,105,918 ,
+           -1369,515,289,1231,-1206,-991,1342,899,851,-1355,505,-1462,268,376,414,1099,-1297,97,-565,751 ,
+           178,548,1170,-744,130,-1238,111,-447,-788,-285,374,-293,-424,-1364,-394,899,-1031,-524,403,-436 ,
+           557,-414,-130,311,-1346,-1439,-293,1341,420,-775,-999,-1457,-1183,-819,303,-661,407,177,-327,820 ,
+           539,-64,-613,1164,-827,931,1361,1050,1260,362,-977,-634,1105,-1172,653,-658,-1426,-264,507,-272 ,
+           392,253,92,895,-487,619,1286,-124,-743,-904,824,180,511,-57,1362,642,-14,782,386,-396 ,
+           -685,-934,483,-659,-13,-232,861,1076,-950,-671,1414,-769,260,28,232,-1037,636,-1180,1116,1310 ,
+         1319,-276,-936,-1149,873,196,-1488,-626,-150,-1172,-1319,-92,-1163,659,345,1036,-265,-587,-959,-986 ,
+           -81,1015,1062,-1162,907,-555,-51,712,-706,277,-300,1061,-1067,449,-1453,-1296,3,1034,-238,383 ,
+           1150,-460,-1073,-907,255,-1407,-872,-1433,-282,705,925,-263,1367,740,40,1425,88,-418,-86,1175 ,
+           -1491,791,-1476,1150,-496,-809,-781,98,715,1372,157,-397,1460,732,576,1265,-133,1083,-945,95 ,
+        -1302,1271,-371,66,-468,484,-217,175,-1254,1274,267,-609,-1161,-1497,-607,-104,-1418,-444,-1403,1259 ,
+           -1015,1351,893,557,-631,1172,1308,-1196,996,104,972,346,-810,198,-690,52,-1137,1373,-708,662 ,
+           627,-266,-478,1109,-874,1399,735,874,-46,-802,962,1494,1193,-742,524,969,-668,-758,-1346,1207 ,
+           -705,1356,-123,-100,-1343,-603,-756,-643,-637,61,879,15,-1009,244,89,-51,-257,-1289,511,-1093 ,
+           599,1079,-976,1486,852,-685,-378,-386,1333,814,1483,-1171,-383,845,729,244,304,533,810,-724 ;
+// S --- Hermite form
+// U --- Smith form
+
+// V
+ring R = 0, x, dp;
+number tinit;
+matrix z[60][60];
+z =  -271,3050530,-91160,38029376,1055567244,63951178,124789174,170725207,4044,-85971,-48175890,-38362416,-49920,257920,169561,-3176995,-3598707917,-10143059,545091351,99792,-63663280,720,69990947,16103771108,50083241,-47547320,-47512696,-9227925,27813563,63397407,-2381,0,-47589601,-266269036,63730092,0,5374463054,-3011287,467631761,-81916066,15847356,-940211231,-13331724,-947172331,951195982,-4,-20465309,266303389,179984610,-27889228,0,-141306,0,47620312,6339290,-3760844920,237736450,-5367924084,-5705683,-316964281 ,
+2757370121490,457951842784171126,-11432883738378425,91604174117689940,339054834861577,-212532345648426370,-65336098012662954,-5968542464042680,-45794581087459480,11463200216306283,-2956449373755937,-1504159337629804,8275966333767,-42759159391123,-64343249559304656,-1035021376169,7860479797346583041,-37267218480864546,1391147172952407311,-16551932269783,13093140052924,-8586096137421138,15850620244785315,-21393712629906709,11712344442059523,-15011942695704,-20529253584856,-13802957696365932,7304515088011017,20015877333319,172415504932,26140517595,-14736108751419,-86272580897226,-26196786401376,-30576,-7165403851265553,729156214858397,-6443306085498693,-24872828981571000,11208049756860,1896179180284035500,-3018960530666876,1907854124737481800,-12892644111455193,-2331025,-5889952115597560,8268452233594429,55325032265039919,2898523391812623,-14367997800,53142828853474095,100408404444,-8261609022559,-1062442854994,7584716721138473025,75059713478590,7131237543046127,2920066095977632,391928739735373504 ,
+-3267359936,179801963984,-243890431,21562148592,493286231620,-105395969952,-327914099733,191487729710,552076980,42999923779,92304586274,-23011958298,4204848,-21727568,-32962303162,-43551537030,-17406529628145,68965206267,435702881133,39887760,-16946929730,-191381652,-199819766729,8233244048694,-355944294348,-22539268632,-22542206744,288376296006,37855573770,30038912120,-14234355212,69567672870,-10421001070,-123549534056,16893013912,0,2767664045802,-18246288720,547114279561,573878495536,677771672,-4095787985793,65924510164,-4397208069209,1098463884816,-8050308,140808709718,-44204045920,-1381653021846,-107676720130,0,26913542779,-47328904296,97240889894,15358191328,-16383671099544,112696341840,-2752322735666,-69506578451,-473100895679 ,
+193095994314,-965836827965994884,24147080688987747,-193158564788070701,248751918742572,-11000649124399056232,-41130989602113808527,13855538109267808938,96583810844352852,-24144909581610774,6875654123138448033,3398755110928168862,592614141747,-3061839734847,-3298992269248380108,-747837292889,-1051602199206696697641,6948102499084301763,-4696374093566685129,-1185184700727,-12527629174906,18109491908327766,-37054352444265443349,62431720020868024611,-27502654844688194178,-11107478857662,-11502554961210,27715326954517095750,6854111889568568493,14915694696400,12191457093,92756883699,-10853111844168,-62800425443262,11589274094668,60492,20836617151666823997,-1718917430013580250,41490370121762571891,56569681864678207188,4163420387974,-235277162369434592676,7057971978358605996,-262779831702994292682,82980743177894385202,-7995968,13855503341398498134,-17185307539527672,-110861269679340575382,-6875674391651128634,-1028851200,2750166339440266209,-114247935864,9021794287690,26046181834003292,-941108649477730374736,55537361940990,-20810573340289388221,-6869156901430325283,-2128878978332357349 ,
+-60317217603696,4417783801537898160,-110459116449179288,883865736504522704,6682510706774829,-9984560399992658996,-29221590861480510400,9534333436026842128,-441779691887380212,110446715840002270,4732023397946460449,2338066099457896408,-597791911592,3088590459256,-3000866407224791040,-9291599516498,-641265937473198570596,4400205807083587296,12197249221856693808,1225273371048,-170879003950440,-82839731034178080,-25496821495480185401,43064261877129257135,-18927520379693017664,-306665205662732,-306266855728652,19047806853716143850,4829684373329790692,408959573372440,-302354460178,1017089869504896,-174562823202120,-1669376437942056,177904019101088,-2896560,14372902975597372621,-1182903425724033236,28677249066636987360,38915907206396144864,-33467932287531,-141942391191570152636,4856918879380351328,-160869017169323142856,57354541052286765244,-4940355964,9533799724062548464,79063756465404436,-76194881919814841612,-4731430323528037308,1037836800,2496109745963039064,-677552366289136,1567303061587996,18146464366988536,-567769564772076099700,1532065330208492,-14354754120091598501,-4727094668581602148,2878081149019550096 ,
+-264326293322,-54439031711690230,1360566937114304,-10889880349917477,-102329110664164,470549105985851301,1612795118941858676,-537707669161871297,5442684142108188,-1363813423258423,-266817688323576038,-131880415891253456,-21927772344,113293489560,141234983283688964,3462864112169,39320411425080612074,-262740693945457615,-96820844277465602,43803807328,7052915349616,1020455495351514,1437932452472475138,-2424197146684954902,1067291079282520763,4581338044421,4595965801369,-1075136792767566410,-268037680893047722,-6112553859761,1034790291135,-4415217413256,5231176176525,25884188394100,-6655809642838,4656,-809079746997844358,66706004794096990,-1612453750809245203,-2195124049822536776,-2161207570534,8769617890124828608,-273893673516606872,9836912538848214261,-3224909257538072130,8960138,-537687701733349709,-988540625716145,4300540216314077147,266829909578574784,38054640,-117639171485653272,2923288727808,-8170763755099,-1013544013178020,35078471598832658294,-22906688970655,808066290695740834,266569963270088648,4085503839984104 ,
+24963272025794,4886381485163062104,-122115958622687877,977469255614298534,9356157609500058,-42343129013384558554,-145149130497772457682,48393655389315630534,-488528342695861056,122420770758348271,24013576928168364882,11869211557932653888,5522923724688,-28535105723472,-12709249683614084600,-311730669676230,-3539053597094368968052,23647647425095525695,8674093385083624136,-11042673819552,-629180742335160,-91594598777464932,-129413874834646778912,218179960836361618656,-96056185648837552266,-418810170526998,-422492949924126,96762376670054251796,24123099779210645346,558782847079162,-92932949058948,397369561109040,-477108570919674,-2366858678314192,587822796118236,-419040,72817906487078077446,-6003540947056467480,145120401071972169107,197561179399410015852,199308854210260,-789318115689445582936,24650421954633160746,-885374638704335833198,290240957598155721904,-559255866,48391891920963128766,88773332147446648,-387048832098219200858,-24014701291005392256,-9587073600,10585956974746006109,-263055291119616,731753200079688,91223273596876640,-3157272466203429359398,2094050739996714,-72726705305172172390,-23991296090559590736,-379165080103917814 ,
+20389824,-5365775181359208,134144500636832,-1073154962048848,1938587364,2548744110993598,972547380127033,-716146423,536577523716528,-134144270250088,-221957540,-342725040,62899200,-324979200,771330380229276,-5839764,-87040567673949520,402433155395656,-16289008525183548,-125798708,139924848,100608288580800,4504667076,-9463530468,125716220,-85384208,-127317008,23959679905926,-119797645255624,113859984,1310400,0,6396877956,-494523792,-239160432,336,-3349176628,-10038154,-134146535179661,9580389505096,74367048,-21089420056737720,-116150160,-21089420156881848,-268293126306934,24948,1453145,-95841505071732,-95837962165506,-165467932,-109200,-637185964093826,-1294894608,-13046241978,56929992,-84357680226975828,426921040,3154510156,-1068760,-4592052720031238 ,
+14563551616826176,2729010776404609171617,-68183438768434538836,545903604398227196645,4430633900408259586,-18105321572963543109846,-61084925650482747562708,20325149877300410393327,-272854070520316125071,68356278546144117768,10085618274689543529717,4984964169101449159434,14556597907912092,-75209089111739340,-5435109417611382291676,-132449026062594874,-1475432407312552383025909,9881225769574594044988,5697763874705355965914,-29111868620420540,-244886455176586330,-51157689114971773512,-54353496392117907797947,91642873992725119909595,-40343429593178569156265,-198084140604368515,-207788887889671075,40637070381773833497130,10146780892033665992379,264267285381603088,-38774313554360760,166896278130077172,-222166717182456169,-1121573483124461288,208140873043827908,-221198160,30585916583017379336833,-2521480912855199601730,60966918090071354231789,82974192580069553909904,100281941921537325,-328855819378514814381497,10353114455025874681552,-369199445994056357709964,121933892549557358237280,-237282122625,20324525454680413883891,49503451400690864883,-162547830698834615510428,-10086176164588689686610,-25271310729600,4526418181432508251546,-110309536665691704,295063907792963018,38328435521838554036,-1315423278961132758721763,990420661465476647,-30547646373885558020005,-10076310072033889876263,419104997529324701131 ,
+-4815018498338,1722801698588275332728,-43070075671336609361,344558495216457138058,-50870882694372848,-825004715606801158638,-336308267811706869626,8057566612987193697,-172280158642085093894,43070076547255238874,4004770238612359848,1980185400356943236,-19268849450469,99555721998585,-249653988460990473388,82005939881066,27343428619829050829082,-125207242668994108067,5228896082157043152362,38536942977573,2971265908756706,-32302530155093095548,-21573976351947545838,35576423252837437105,-16012088692051234874,2291020178065106,2303799445367524,8438524810586966928,42464702429189493747,-3054699581756774,-23897936812542,113392901104749,205214648761850,12833597355258664,-2946315359354782,-107927304,11873781158885617820,-1000448527958817495,67214465184411942320,29856694351675116122,-773653174459896,6636518443345445161167,4109135643425312679,6620509226052818788803,134428193975296141092,-7303106224,8066405532883470429,30759134171042820782,-33761454322548285327,-4001078166398684583,33453193800,206250404573029423732,340540971725772,2035334075005282,14883259403598448,26546073772517515253092,-11455093496706654,-11858820824197934940,-3998306254135371283,1473636067680100299158 ,
+-56448,-429408,0,84672,3640896,-32256,1126440,27216,42336,-7056,211681,-564478,0,0,56448,0,-91058400,0,513791,-9072,0,504,-27813,54524457,42332,-169344,-169344,-140688,-2160,225792,0,-36,-41616,-903168,9072,0,18287715,0,-142632,-144,-69048,-22711680,4,-22881024,-285264,1512,0,901008,526464,211680,0,-56448,-144,95328,112896,-90848232,846720,-18174819,-1,-5625144 ,
+-1853480315180,18386080659909470,-459924002690002,3684332123686547,152049329562596,-8737640755507112,-3310819906301532,6860760057454,-1838656017025296,459867391633952,14631153435703,-14792627032279,-215621458,1114049690,-2642708046629656,-97612762022,296511960315463822,-1379774832661658,55781710910959602,755056234,-1953095807248,-344942722334172,60012170311254,2366458126862793,-33696120053938,-7024398876682,-7024255816714,-85820654608760,410468739083398,9365864143440,-5205782,27432784662741,-2904524873466,-37853845152176,2289575361396,876,793491679380831,-97671346940,474758389084500,-32878838293224,-1828918563778,71829654154184460,-1159368412840,71822645854980766,950005124005612,-53317696,-7963143086,311589544536106,235097880431978,6071880361546,374400,2182784308563970,-18284075438438,41870559342006,4671440768064,287318616670055536,35121994462610,-788819375992731,-3169636320,15626214678424374 ,
+19468397028658,-4899307034943057156,122454765873750765,-979749054857746419,-2871899088097097,2327308827126437238,889987579415385050,-1210321177154992,489808914276165251,-122734077204156086,-582324146739984,105499446712618,56671131253,-292800904225,704322758300600624,284372254084320,-79346165593807629402,366908458227152475,-14872579203816072976,-118056224873,97370479116894,91840996370291862,1535647258903846,-48501069285829860,2241072019306102,131206423925633,131169475051113,20018576219437720,-109731084481942050,-174941906432830,93172946439929,-379837714555149,93330165059436,719181284789452,-97455488301116,419040,-16306535846557178,118730006309451,-125925159563078131,4997792326976396,-3381603715936,-19225947116606343663,-442072855095480,-19223993813966460342,-251874680636431411,798253789,-917954985578380,-87380426442485399,-78838396784810179,705696051707073,-99684000,-581830109622748757,252049280538252,-600929958860615,-87523961627030,-76903785016416268441,-656032119926353,16218785199397820,455493111198675,-4189072557697867706 ,
+74152870205036,-74817529059047670,1877410922467335,-14409349807402888,11228306729457580,-3823081394777619874,-13894553146513213574,4669113431768180256,7454550810422352,-1876241629478631,2314815054828026455,1142786253503525894,196727574492,-1016425838467,-1147162969526656142,-40242656267478,-350382043176334498696,2321396547916242034,-815963221403386985,-390816432946,-960582509234704,1408510966125060,-12476728051014153035,21197903155594118225,-9262596905343393976,-498738403768064,-498869532407744,9333833800837697632,2314089341733516359,665020160234548,2612976169122,147714997962810,-660237025208065,-2852406980037568,899033905095136,-506352,7075076442943082195,-578989178794946834,13986785783918005962,19051759979105473890,333001955488752,-78323127102581669320,2376582768007524636,-87586687482845278723,27973811647887388586,-436593108,4666416330055588896,1317637593314176,-37332450689897354950,-2316467378254365164,-341577600,956059750701299091,-98496893514104,358914698648364,9110960730275552,-313292508313267478092,2493450451426120,-7065966269124781083,-2313569776184954379,-519699868549154684 ,
+1406106781996,-353856107498385802,8843955174135341,-70759653376940835,-207426180325656,168093775223238571,64315162962650998,-100174892765070,35375087732355540,-8868013729947692,-48389435291118,4357985443460,4082529477,-21093074457,50870920392701876,24424058442103,-5729664402178807290,26492611100570560,-1074178990998647364,-8497020285,7032715985542,6632960758547526,146890379550892,-3558451321498811,187186121600357,9476536898083,9473886817637,1420024683473994,-7930165513339665,-12635375740899,8024503698153,-27432784695069,6743156191291,51943692354172,-7038850190840,30264,-1196946136747466,10158169423665,-9132882617713611,308849305481158,-292249239750,-1388340797346413229,-38883861784323,-1388174393978670428,-18267524775277706,56236102,-79058363178294,-6309860383623359,-5590935112691478,61185779453871,-7199400,-42023701490559644,18203146407732,-43405634419225,-6321354816596,-5553362892241105138,-47382684511137,1190608451712134,39229571359159,-302544116335712383 ,
+12974379654392,-133301800075404861,3334449019423390,-26710166956271259,-1064204310738353,63348131606264856,24009367856910635,-48003530309195,13330515711462720,-3334052544434780,-102424624168450,103543031546673,1563263806,-8076901430,19160096694461860,682865623671,-2150190397991694970,10003365194373242,-404433911726547330,-5393227438,13663422165540,2500834732360644,-420072089357361,-16563089364724470,235879559123275,49164442729916,49163405545148,621280235834048,-2975961214940304,-65552582968232,37469030,-192029492639187,20330885017137,264941344737164,-16018864070384,-5844,-5553735244618968,683293333845,-3438230114088393,238352809973516,12804585758057,-520884348927692052,8113719490660,-520835291839043916,-6879876604882971,373244728,53041786117,-2263241535034846,-1727808242430431,-42506986319365,-2714400,-15825649592861578,127987417318562,-293098831393341,-32699199780514,-2083537396084012936,-245822214223780,5521029790844090,21433392576,-113319589778851318 ,
+2124055937454,-10624205107625950122,265617887578858177,-2124744212668777703,2736271106168332,-121007140368389657432,-452440885623251894149,152410919201945975142,1062421919287881372,-265594005397725170,75632195354522928723,37386306220209857548,6518755555377,-33680237063477,-36288914961732192708,-8226210222163,-11567624191273663726142,76429127489927319393,-51660115029233558176,-13037031700317,-137803920944446,199204410991605426,-407597876886919877022,686748920229548290469,-302529203291570135958,-122182267434290,-126528104570758,304868596499688053378,75395230785254253423,164072641660400,134106027895,1020325720689,-119384230289048,-690804679875882,127482015066948,665412,229202788668335085927,-18908091730149382750,456394071339388508497,622266500511460283004,45797624267594,-2588048786063780529579,77637691761944665984,-2890578148732937229013,912788174956838679014,-87955648,152410536755383479498,-189038382934805672,-1219473966472746329714,-75632418308162414654,-11317363200,30251829733842937899,-1256727294504,99239737170990,286508000174036200,-10352195144255034162668,610910981350930,-228916306743183277043,-75560725915733578116,-23417668761655929439 ,
+394112962032,65378673085637459,-1632193538889816,13077705542424810,48409350149521,-31037242241640490,-11834385000980895,-11230461101394,-6537781110941176,1636524593574257,-4803596781565,-8475356895128,1182316258560,-6108634002560,-9394482602881572,-147815853214,1059317745743035606,-4903114159463487,198497564306719064,-2364632513116,1871475865436,-1225778536382400,14114399730363,734479155984227,3005498134707,-2143320542458,-2931531381498,-288815536700882,1460089485670287,2857760536289,24631588669,0,-2104346933755,-12317884622040,-3743481256044,-4368,241526137494443,-221707147731,1599545912916860,-117906367416740,1601193974201,256656323254301008,-2660541740780,256653982936614466,3198229851447841,-324324,-18870798,1180439957185744,1171446447694505,-3473305311801,-2052632400,7760702380318182,16833629904,-1186073096149,1429017204946,1026625293017528356,10716602712300,-244826385328105,13885960,55873948057450399 ,
+44478527576776,-481321561751178367,12285345077956500,-96070302452062025,5165549179199279,248084383664574734,151936456301464567,-22388234409331558,48149388706940788,-11791490348764896,-11024088525700497,-6097510507619236,130143890399700,-672410100402740,74852378549945402,-33105928729397,-6360000579984469268,25648613320958438,-1455614666839942288,-260288034008184,211553351484420,9034213682543940,58014525371567219,-16971367340322881,42307374290219556,-228475089175887,-315237733578767,-39777099025810246,-21194530249626437,304633289605626,-2992852911094,-21426790387860,-217387060814132,-1315042638406964,-417614254744828,0,-6062031468640365,2597932937158444,-79246348370264304,-85559349377838882,176446319042811,-1571873489395145544,-11053859606605308,-1530170689771144783,-158588966375208193,41630784,-21135391626941974,-7206960918361665,160960214103877519,10087187900562157,-225944175600,-61867668277664489,14284522240560,-182357699585621,112497548771790,-6287494168888308000,1142375445880535,5653953455710491,10478282688847284,-418350492792298547 ,
+-13189448064,64389119887659703,-1609805379767648,12877239474532676,-16536662040962,733376609527256524,2742065982638100118,-923702535857324204,-6438920564950524,1609660638397390,-458376939483701407,-226583679602924222,-39507883152,204124063120,219932818265459424,49776529710,70106812543389767684,-463206833272295344,313091599249520308,79012978584,833588677214,-1207299460561728,2470290180153725589,-4162113943236311419,1833510316160368870,738360589300,764699178680,-1847688463632923908,-456940792574497501,-991528979424,-812774744,-12912,722114410192,4174975333464,-771031420952,-4032,-1389107567077488209,114594495254984968,-2766024663116154728,-3771312124311712592,-277560583651,15685143973895815596,-470531466175019196,17518655260661874084,-5532049521460184034,513719,-923700222759924980,1145686521393201,7390751291732958808,458378293249908174,68590080,-183344422945054224,3494011680,-591861232680,-1736410696917084,62740575895582748665,-3691800790012,1387371314412103821,457943793428705557,141925219403210320 ,
+476854456466,-4726198722451337528,118123978088630114,-944932284541871657,1224829689758166,-1403290230162527872,-12291440302204658378,4410563748895479877,472493464669970124,-118403564391136253,2188583340479163649,1081685722452993704,239723906522,-1238573510666,-415096933470945932,276920397220827,-406422830808562776457,2542985086022011969,-14908561908661038620,-478376270788,-74132264873214,88592783620650756,-11794361647240191494,19890584829319309293,-8754510831479040161,-55102171158651,-55261168540959,8841824616274930562,2083201451478456742,73503197860297,93563643770783,79864335275010,-50253696827163,-309094927790428,70387232769804,367632,6638470180033565059,-547157504003634165,13096887768633599137,18014615580445654870,15983420625538,-92260477273092433393,2246568744639567984,-101014990320400983236,26193793990425460444,-155969016,4410352586955405457,-84157879293745937,-35367370542606052562,-2188369988747698074,-417491880,350836012017102661,-54335199923656,122230787857892,8328172885949260,-369041905627075968436,275467088962021,-6630142966042735007,-2186542078564683546,-4459731089747094013 ,
+-59346457650932,-99910284929280587,2491896795009284,-20469253300799543,-10010641657650469,3739338305396725990,13325050387119747229,-4466956574976319814,10011606655333460,-2498561230183308,-2214855677754306043,-1093524816549646594,-186248034780,962280600332,1122208169352873626,41048316639659,332427191439782345080,-2208161496977100614,260619615007335362,382288543536,830147214550820,1868373561914130,11937463709379882773,-20270257815138346493,8862231804288254906,445290372804165,445414534416981,-8929362401218817290,-2217843401473702197,-593754596022764,-169569112538,-189925975867122,576219795279430,2541246479998042,-778048360152108,573768,-6765447511100261045,553950923918026348,-13385587185104846386,-18227584868193419074,-281963597172171,74256759705744920212,-2273880391578287562,83119757893473068223,-26771381844932477305,-1636032046,-4464622429908635474,-4059820955841305,35715218562621814987,2216233540771631235,323339640,-935079566975555137,126247118658700,-408764363626205,-8695743107130242,297027038818480944254,-2226183265933077,6756752512964197241,2213537751130525912,349119966422761407 ,
+-520260011,-4599244693557368,114982030571904,-919839653155050,203587080667,3458063720966434,5422888879149385,-1539381098897070,459923865793176,-114979771029504,-764039632336809,-377665351987466,-11389530,58845890,1043165787309449,-511841519,40494902590551860,-419091430016464,-13766138628520817,23142294,-10273067420,86235675992998,4117563845361103,-6933998601878055,3056143746406850,-9228571638,-9220783798,-3058283392865949,-866596862890927,12293062470,-410152,10118908392,-2509601724,-51214694522,10290917556,288,-2314228420343207,191008598019472,-4727337608752202,-6276775469347386,1902672226,7642480510875210,-784293435866908,10698621623017230,-9454672645441069,-40509,-1539411971576298,-82238953406642,12233115027807261,764033792992513,18720,-864514038578236,-7855841760,11216395653,-2895598594540,30569922043541349,46430406670,2311332867306637,763310998215842,-3791249788888835 ,
+737414793284282,122422164517967934483,-3056300453453192591,24488125432797032955,90699136542577415,-60174470678692927398,-29573194287286175858,2465657749507523393,-12242055012160111176,3064402889193548819,1225156046055649179,594155622121173508,2213104349939273,-11434372474685069,-18208339501562881160,-275392639889199,1797653825230551112047,-7946985170226415158,371372117023507501212,-4426208625095765,3499178554638428,-2295281602119058914,-6624594782439068831,12581597336553471871,-4930968681146156999,-4015777237197748,-5491180132702802,4432524576436108430,3968016309548797468,5354388316446247,46603245058578,5870232501423,-3942071212090265,-23078362766044720,-7003269132129952,-9020892,4192370569800538413,-308951768811464721,10445861272618440808,9931581411019688360,2997761343895469,439045811642394220156,1261882009342047520,434104843426546127906,20890110049148244601,-618099600,2486667554037985289,2210547006674444710,-17699814203024961425,-1240646906458812435,-3842195067360,15046223509205992227,27578083294512,-2210565630181355,7357484422657062,1756183246588599286144,20078497964362910,-4193865502786631139,-1232976257258818928,104390465411449173507 ,
+3798311548760,-3893680978661525418,97348478770571456,-778803895048766890,-1478619450716420,9654009452902119612,28833655205927513520,-9435493730015311466,389368592536813884,-97334381870061868,-4682685477475817528,-2314426814641727208,595797207456,-3078284311168,2901084906631469800,1319411315252,642335984062709446452,-4390634122645734496,-10619643139981379066,-1210936366080,77269367118984,73006810163690760,25235288569971331248,-42539345833903375524,18730848998011344566,66909849911766,66512800492886,-18853177207382996664,-4769086121702804810,-89285041572096,-795059887824,-139831873173660,60614372784770,371958530139800,-75605265738600,2928624,-14197585291154515924,1170672820986209516,-28368210017607379006,-38514561690731193416,-13742053318726,142340001460005282620,-4806774258615921568,161070773336900762978,-56736439551153085888,3236852702,-9435266914217194610,-70146917970758502,75413017507818682728,4682693158508345252,-1034354880,-2413514188636042600,92840464246864,-224105295134236,-17801411969299160,569360005806877280658,-333306953692494,14179781496029566124,4678237273194438580,-2442848815490205726 ,
+-407402065938,-1853770758584,2819924313,-3376696852513,-61655688933042,19437384675912813,70058399663566959,-23521048983912812,316101024144,-53317211502,-11660004673853924,-5755699519321340,-986617671,5097524835,5833041952968378,264000587121,1758967264530786197,-11665211364469281,2958232484022438,1958718477,5276007034728,27800334,62847611387862186,-106858333027169598,46658346191474558,2738610669272,2739268415192,-47016129208031604,-11665290583734449,-3651660325842,-20952003,-811620867993,3626464295226,15662895075888,-4937977152724,2436,-35665486759146102,2916568911459915,-70468556783751861,-95969142444150362,-1829567414878,393081312354718868,-11971321593954912,439744952235148264,-140938432240389444,2403582,-23506235052510656,-14518301123154,188048674347535047,11669123762598160,1712880,-4860936192985038,541091593456,-1972148465561,-46046363607552,1572325249416471890,-13691903022340,35619444342018066,11654164258740108,2301583669821966 ,
+5296632009719,-5344109286909938,134100781517775,-1029239089945762,802027394987996,-273077242124735979,-992468081212115588,333508103140848098,532467923421252,-134017261671833,165343932247959574,81627589323832844,14051720115,-72600556547,-81940212096290621,-2874491652386,-25027288820602439298,165814039090631038,-58283084405950185,-27915214013,-68613361075728,100607927517306,-891194860450521789,1514136023551428728,-661614064410997611,-35624418948116,-35633785106402,666702414267770009,165292096115841206,47501769689165,186641142878,10551071282037,-47160065391009,-203744739080740,64217032796064,-36168,505362631059361038,-41356369929300480,999056129802278747,1360839998097344476,23785932868206,-5594509084524927123,169755911932467236,-6256191968870112117,1998129408260914482,-31143014,333315452042651138,94118483626345,-2666603619667076753,-165461955726005172,-24398400,68289982182132084,-7035485602516,25637077695873,650782944924926,-22378036331166950758,178104839924530,-504711904321435888,-165254984042344351,-37121421024058707 ,
+407429908,-22997693640455510,574905000609888,-4599212312501138,657305979723,10924141317047252,4171498983637479,-1017801764015,2299617802367304,-575245647638584,-591572281401,-307950654912,268282368,-1386125568,3305979881352236,339592376221,-372954231152843816,1724150098455252,-69813912550238691,-537264512,-39626293308,431178380144244,3211153209809,4977746023725,2267489778455,-29568738430,-29745692542,100413346908358,-513851567567857,39426429432,113881735836,-6324318918,-2489120087,-165917043236,39203544988,1440,1597886860301,137233239025,-577984552150907,36424278611812,6555959174,-90366099625461048,-619882940148,-90363875553814054,-1155959287155939,215411,-1135412160323,-410488554944295,-401543451273223,878770839249,-468000,-2731028812104812,-1337552256,-34391809389,2976103326,-361464394284406163,147843593214,-1595983884943,552959943744,-19680388580832806 ,
+-18090409096,1912925624513945908,-47823215103514048,382583116884501567,-55907303576340,-962841803836555590,-542059629303548422,65513963639201811,-191292564022540196,47823072546278529,32521314825554174,16075801604077876,-19674912288,101653846320,-291242651964157598,170282514353,26131458540524929034,-110950382974699231,5798748666663974476,37518815688,3323018231632,-35867358187557696,-175254168335435762,294416125461696690,-130077261000413227,2516955825001,2529999277993,122504014334857674,75223015048519076,-3355513168473,-371046969,6738545400,-17591472397,14107635324884,-3290170334724,-138528,98261772801768702,-8129490580495783,244120748376636761,264099702728353982,-879308210544,6423825548467780468,33381454836468840,6293751454182544521,488240672557285278,296958816,65523834120929607,34158578415683657,-490023847506076998,-32517037579025172,34159320,240709575938981229,507135309776,2624885476180,122985612598328,25695302193574163056,-12593398070091,-98138708486476486,-32487482057519260,1630940363209221499 ,
+-13959099316,-3241101352195,16287754292,-74290644193,1864384891591,161277643687238,580688299451573,-194434086115736,75693876264,-577091928343,-96558463069597,-47935415486560,-8600270,44598022,48391393492954,556130985358,14501994089115216,-96526839457015,18614997450214,-2227450810,-57949844404,12352359708,520563960644109,-846447386008083,386323651386340,-85300308455,-85292262887,-389516596462330,-95136979363678,113735246657,186341982851,-9051210,-361971323988,-466520839408,60208918312,0,-282579956705947,24138964238704,-582692484516742,-794491802852258,-9518710829,3239600720440672,-99206366882596,3625818422356149,-1165370478379093,374154552,-194614714057088,1776119208771,1558174289552905,97152811469325,14040,-40327808449441,61611954264,683493972093,-327342147722,12958409409222856,426501531061,282252652877489,96471384313990,15813567332537 ,
+-282160972582,-416516159082492,9744619315583,-77015013075024,30383330770234,1794902186076616,5878173247777745,-1943806405779470,39163779142704,-15356954945188,-964461173007262,-480493697093692,-85999877,445966057,539151521398936,5553670806973,138655471484048919,-936523889932951,-982426508575790,-22249597231,-732274580344,7309828540170,5210259958538898,-8281787128712946,3860646571896004,-1395294943388,-1395214487900,-3893737865770518,-959944258656527,1860408248786,1863419744549,2110123692765,-3843381494940,-7587986701840,780722190340,192,-2764544375954518,241382004254380,-5835347138579233,-7944239393019128,-235209749838,30852895520389276,-992153423123344,34714533130340784,-11670511176580576,3737448960,-1946148583971290,9619449600240,15567714607964562,971994005634886,140400,-448933928975077,-790689466476,10054240282170,-2913807522656,123411647360255344,6976474604800,2761630951623662,964713367300276,-178955061760267 ,
+-949949499836,883766321025786400,-22095674582510154,176769532404942196,372510543754151,-2370917038427320730,-7192171401000876507,2358876672973490744,-88376375361155613,22093008298429662,1170672638126340390,578607303636896310,-147894772386,764122675506,-712383620014239880,-1192370958235,-162038579772975549201,1104384225896384620,2382746744068787976,300626920194,-19481794173122,-16570620164114784,-6308829755818382190,10634891574965884824,-4682717701369921308,-16856130239595,-16757569979403,4713700287106091178,1190271009290449237,22492819570090,-85906495128,34972092607272,-15172282866066,-93709884157298,19064104553000,-726540,3549414869399268042,-292668561302987833,7089820662466854564,9628811743185606800,3488111770698,-35937434100709439423,1201695055121975392,-40620132661703300790,14179646244679879643,-809140279,2358819480661249904,15935768935153061,-18854877962208998061,-1170675609052863701,256763520,592732268359436674,-23241181297884,55952476847723,4450373495731798,-143749736405096001733,83970076845195,-3544963904332735472,-1169560724828713669,533981831927727903 ,
+1079992099627500,189256279197313441006,-4730046664119872108,37858514285244366694,369369950983647321,-1748389546391661492784,-6012500972678017326945,2005406807865596590305,-18921125009125004614,4741762870582080765,995106950109369662441,491855221386225275378,-16017792225300,82758576542100,-524761658642469428736,-12835436284143628,-146870535687002776806919,980935559186005324817,319273561450123467276,32477357833476,-26453578050077136,-3547523639131606358,-5362833404636168882712,9040953771200725228611,-3980504253292229206657,-16524646913344794,-16514002219542218,4009834707642908822356,999351411979249026456,22048165441522949,-3839009504931301,14747756494232796,-19190174172604861,-93466292843747334,25099347001391788,-8889408,3017433071242475782935,-248782786165701651917,6013380426135193812355,8186842572959857677060,8084129330310146,-32760789268675591389233,1021498065678249769194,-36741308233336665077949,12026767471004130982003,-74887533879,2005331509825868284353,3439460194941302989,-16039307080696266028015,-995153306327181576583,27863487600,437104477555491129700,-9766776299554304,27895985996806155,3779617519083718350,-131043157216799974408973,82626816380136724,-3013653389652636937135,-994183722672497370545,-27012541317882581576 ,
+58247436075722,11401556787835284624,-284937236552750376,2280761595360235460,21831061139660476,-98800634359388836626,-338681304487396750528,112918529244110800874,-1139899465201910716,285648464842194158,56031679499178938328,27694826965923489720,12886821312624,-66581909675568,-29654915926886150402,-727371604700448,-8257791727104089273000,55177843992473902190,20239551246390532106,-25766269480896,-1468089237825888,-213720730302855636,-301965707949300062270,509086575715508024906,-224131099846512174510,-977224953530364,-985818104973156,225778878892677496450,56287232836277507518,1303828272884410,-216843547925508,927195642462096,-1113258545361906,-5522676935233330,1371587396288556,-977760,169908448613905223824,-14008262209840186998,338614269173411123894,460976085265211346972,465053958690432,-1841742270078799548396,57517651227292465114,-2065874157114285130280,677228901073525479280,-1299596172,112914414482005591394,207137798569756196,-903113941544292619960,-56034303011975988006,-22369838400,24700566273095095332,-613794791860992,1707433976417154,212854305558094676,-7366969088355046592292,4886124504829176,-169695645855623159804,-55979690878051438464,-884718553150588950 ,
+404350291156,-4375651816007668,111684955252766,-873366385675225,46959542536888,2255405353570850,1381574991392745,-203641592371491,437721715487300,-107195649143109,-100274660096706,-55459444277708,1183126275606,-6112819090670,680504005105916,-300680670103,-57809803645475384,233113538983123,-13232849941994136,-2366254851204,1923211852544,82129215295854,527704945435010,-154790422277122,384835185938989,-2077046457207,-2865797768567,-361834387970582,-192733133681632,2769393809689,-27113640461,-194789003526,-1976246297397,-11954934233636,-3796492822518,0,-55278059821782,23631490390889,-720757496976695,-778270305338498,1604054117824,-14287885668464176,-100546815363160,-13908546616334587,-1442390172341806,378144,-192252113739231,-65517755660323,1464172255669970,91757663204204,-2054037960,-562456545030399,129859293096,-1657797243060,1022495982776,-57151544591350048,10385232286045,51568050701198,95312736093708,-3803175848054002 ,
+690427989033,-132460561667237033024,3311517154735851257,-26491967974911903348,4033095561188974,62919040572146406363,24008980466313689700,618662966663362,13246056711664289820,-3311513314266327041,-192878250083172,-152574925752428,1553025898929,-8023967129589,19041213860029842249,-10304696270642,-2148713145077802644998,9934501326141797196,-402111569225092009411,-3105952962345,-236625335857466,2483635722202321902,384400987687295,60531042555062670,209570557307573,-181601682548636,-182631918228178,591425997519655067,-2957245061486233954,242140773556693,646854766320,-3628049301513,-21902518768133,-1017544138578780,234175832752120,8296728,20195122227583320,-10894606456176,-3309825513262547527,236166837043073128,62067024374400,-520620881740539737181,-56306486139940,-520620897372067068835,-6619592387866396972,554607454,-83862517149686,-2364949124283471319,-2365129566191429345,-105542212998630,-2696233800,-15729698339274738862,-29567963095836,-147182708324335,24663040707726,-2082483526939851957418,908007842559186,-20176671281673466,-18699560863721,-113361481681547451101 ,
+4800,116548,44,36396,629460,49320,196236,167928,-3600,31532,-56556,-127056,24,-124,-6600,-33708,-18507240,5040,678192,-48,-56272,0,163860,9621252,23424,-27900,-29356,60216,5820,37200,-10296,0,-38380,-160080,52640,0,3234788,-3756,431552,40632,20100,-4623528,-30120,-4672912,877164,0,10008,160080,-77244,-69276,0,6300,0,22220,22056,-18494112,139500,-3212804,-2880,-1131900 ,
+-38817728592,8828889464444015610,-220722456699445800,1765768328310142578,-269936761414266,-4193740685449641252,-1600268876405719566,-41757915176352,-882889036737966216,220722077290934892,12610399055334,10194010360128,-103514123880,534822972360,-1269153380820488448,812231333130,143218160110816695168,-662164228865347656,26801929338129217824,207019956360,15811087600680,-165541699630110960,-24873448514790,-4053651305319522,-13011441658452,12155376461694,12224045250174,-39421117656779700,197109003250295904,-16207515035784,-1972350072,101189006280,1494748206036,68102653814760,-15647818851120,-552960,-1352479667155530,778400273610,220608198922027716,-15742871960279328,-4139300339010,34700939086306000848,3554361323256,34700940981758426766,441212479576860942,-36685440,5185406973168,157630916693853864,157646632950645582,7349920761210,179712000,1048431049790159208,2064547008480,9589587557934,-1676619918036,138803756345260688832,-60776844296310,1351217103145974,1447814679936,7555880603814262314 ,
+7420258826259336,1231795828660258674438,-30752093155573631936,246396321710445714517,912655376081875150,-605340381460842622856,-297102949319181512902,24655263224192259462,-123177958425944101164,30833624156424461441,12250998288742422404,5940564510832346764,22269375381953128,-115058439473412744,-183171750778317217674,-2771127911656741,18099259880579159852366,-80037882146581710621,3736717337969134299060,-44538750015476684,35210747160418968,-23094823593907206384,-66244295481034596620,125901907352520972628,-49309334572095623161,-40408546161377087,-55254796371191403,44291789164374690776,39849316275318063884,53878248196328855,468945423072895,58714130425368,-39666833877310703,-232224849508817124,-70470678955093436,-90715272,41951964214086406780,-3089543590183480839,104643880650781652262,99302151941467398294,30164953018943934,4420191658800988297720,12618508639809507336,4370781703427189277241,209271535489645905574,-6218615260,24866675232219913290,22242239782497777533,-176862422097390121322,-12406875197695469570,-38662110193200,151361316603187129551,277724368847832,-22244591193816468,73742042763620756,17680766635395365134460,202038848590628305,-41967299672941031792,-12329762419142615260,1050377617211353237384 ,
+1550720992,360118234230,-1811405760,8240099418,-207538196730,-205626943324,-669546085702,185732982784,-8410214460,64119689912,100250903466,72321452256,57024,-312768,-62580676804,-61791176838,-9972304776836,96721104096,659033936296,249293184,6458285376,-1372484736,-561384461398,-2457978187782,-410922242260,9494973726,9494678814,443608304148,-57719140962,-12660295312,-20704683240,1005696,40236205420,51932672776,-6707872464,0,-811715155222,-24984312984,569980345660,833451930788,1051220234,-2129474809148,112633318456,-2528602369694,1138346064686,-41572980,205856732080,-197443920134,-1786481823258,-166258352910,0,52333538462,-6845772672,-75958388906,-3891118964,-8518624509692,-47474867334,807823372802,-100618980612,256062401358 ,
+-1041359804124084,-204055038762146103030,5099586591667191360,-40819076555976228306,-392087730673689750,1777854596476220992896,6096051256857846360222,-2032533762198783157116,20400893583299293944,-5112310741891695774,-1008570334152019141590,-498507046199371908144,-210681090970272,1088518962099264,533619945298192488444,13090028192666328,148659259151864566620108,-993289177169055154026,-360750596962494794712,421229465994600,26459292708038712,3824980994859790248,5435383087157034938010,-9163545293876575394934,4034359918143910303326,17551469325734496,17691958256600112,-4064025068951252873856,-1013144011695411258438,-23417469131422722,3903627231367566,-16689521564315856,20000775477608562,99186462519945300,-24755955667260624,17521416,-3058347778183784796954,252148719961864700742,-6095028249955482499752,-8297571787655465927376,-8342149715480778,33155966173658312196096,-1035317787125860029420,37190340164978896900896,-12190063044507127511862,23386796544,-2032459494333314862276,-3707300895646207440,16256072234647432698342,1008617408397872790006,365709708000,-444470962364716305564,11048609258833800,-30755160875626626,-3831351840955451172,132623864839350525895680,-87757341897864708,3054517269067027191486,1007634452491267299072,16927388147109534858 ,
+-92221215918280,-15298608666236718492,381933288101243348,-3060183103888139898,-11327967031795108,7262714182934514968,2769244219283053588,2628521713839012,1529840779350041832,-382946568544949006,1124337413331552,1983411162482392,-276662003943196,1429420353706508,2198308776023232196,34402862016290,-247880392442167097216,1147329016986196450,-46448427706823738120,553324006674244,-437919310170032,286832177513496888,-3304560581516752,-171868238951961600,-704475211841938,501545188043130,685986523452378,67584071010150376,-341660693727336280,-668726875655538,-5825908283030,-23610822276,492422625401314,2882429850083672,875968571092376,1022112,-56517125939192264,51803856599126,-374291952179544992,27592588365113300,-374677077702444,-60057588515680609896,622903969733408,-60057042087848447686,-748382203863566420,75937064,616360567260,-276222993648679362,-274123328659620172,812261581591164,480315981600,-1816004229249042010,-3923328854448,277504489229088,-334395480061656,-240230354065098914888,-2507725940217990,57289378475925392,-306921073320,-13074503669883819352 ,
+-1622488479255,408275579801924760,-10204563684418095,81645753962708736,239341309175244,-193942399191697185,-74165627113687668,100861545701196,-40817408878765980,10227839613837555,48527109987870,-8793224678658,-4722585975,24400033875,-58693562273788695,-23697713412588,6612180130699727871,-30575704508320140,1239381608825279388,9818951025,-8114717837040,-7653416259348450,-127971459902178,4042019426805900,-186755618674455,-10934618255616,-10931539181526,-1668217115083773,9144267717880314,14579491688205,-7764412206600,31653213072975,-7780603523145,-59935873923972,8121820986600,-34920,1358966184962610,-9894192657378,10493766633775803,-416482744157856,281778576510,1602162176375021964,36839283756984,1601999400690201858,20989563521218866,-63345570,76496105514276,7281716107068177,6569876926550937,-58807775799864,8307000,48485841689044770,-21003630617340,50083408034475,7293976894230,6408648417996153426,54673091302830,-1351653317607300,-37957805456400,349089359727688785 ,
+-6582892723692,70231608329962284,-1790255329337346,14016741115222479,-767965150584816,-36020959026058554,-21576838218551343,3038297868269517,-7025361108407004,1722850837776699,1510428597795750,843178974859908,-17746948047690,91692564913650,-10868182781620188,4801376740545,943319419062311496,-3841656573125973,212414310097714296,35493930595524,-23025060684384,-1318173905364210,-7934331022704798,1350354202078974,-5776474757717475,33970335186009,45801640798809,5402730145538658,2993066026209192,-45293758317687,406703427555,2921835052890,33585072223707,195500099102268,51512576121066,-288,503431886668794,-354181185411915,10884087191159817,11665756547610294,-26163710869584,232786913803648992,1511725028975016,227099685807701853,21779846296841130,-5693544,2883760137334353,1048740533851029,-21884696604451146,-1371803271264348,30810663000,8982489952371333,-1946779486776,24069358281024,-17242622027736,931147683977017512,-169851675930195,-449686716492018,-1429698229690260,61082077662402954 ,
+1456355183329338,272898778023433343288,-6818286386358254778,54589900518846154305,443063458809438388,-1810531064973528707204,-6108492148234498379732,2032514987740784045582,-27285177090305554788,6835570364229620471,1008561827465671187610,498496416907634209436,1455659817747102,-7520909050446198,-543510611191053946464,-13244902815420231,-147543278034557448066948,988122749428104753845,569769406501923897558,-2911186913878746,-24488649588089328,-5115725793670604004,-5435349639205124785824,9164287400303409572120,-4034342959314547772257,-19808417156015391,-20778891902428143,4063707048445475236934,1014678037862181157046,26426732665675623,-3877431354920505,16689627813016098,-22216671777493463,-112157365665337248,20814091330222548,-22119672,3058591658645673005578,-252148091285720327469,6096691751546090561316,8297419262107431828758,10028195272429196,-32885590976227541691440,1035311445501669774018,-36919953637782150851587,12193389140034654722076,-23728548276,2032452545466706910690,4950304081189886015,-16254783110946174802958,-1008617616460805197134,-2527131119760,452641545063619013403,-11030954278992528,29506387688298526,3832843552594227300,-131542364049617516549324,99042081624430473,-3054764637732188329054,-1007631007203760979292,41908531711551387482 ,
+580716461537648,109343696068601116612,-2732690617458983231,21872509892784181438,187944449925699238,-738046938981757001934,-2492973097854514367845,829636770442271766110,-10932103643993154776,2738984328882800550,411671416366395628279,203473713913670134118,108072072040185,-558372381435821,-221555003401836983066,-6445182942519711,-60257158228463445311611,403482491378609160635,226350984008663646205,-215909553397341,-12961198506492646,-2049669857528855814,-2218581069507012708479,3740759746981275564317,-1646725331440400559770,-8406285218461026,-8478350340708558,1658721385163037132532,414122112990870668403,11214711123194770,-1922767884903655,7457130780625269,-9734607819357748,-47566361644085920,12095615921360120,-7408704,1248485233035631720853,-102920992908220853072,2488508674852221836017,3386820197172848550196,4181550511095854,-13431233334083243925484,422589900211405814130,-15077966400162770063790,4977020553980027830128,-39727375896,829600483595779226546,1983605219078537714,-6634868475510582417178,-411695310276775137784,-187597541040,184515395740693521913,-4937995641128452,13830073747367908,1564680213374474628,-53724933407589995767960,42032285696469702,-1246920985110777249541,-411291495904534151329,15343527049040727381 ,
+62694322875216,153628293256421152,-3833224569631684,31193530664154840,9751910014102336,-3380369232528078228,-11949195544559130672,4002158873517512836,-15379669703977920,3849032087927968,1984156967848004640,979528392703005520,166111310460,-858241798764,-1014587726981009760,-49523899019396,-296801518250033258812,1973465324403481596,-38363820667470952,-329753958612,-827684338335344,-2874526875410040,-10694428723668304264,18171821098565599776,-7939483967422827304,-433321783881728,-433432549039672,7999555110510967280,1988385253577038772,577792907371888,-2698462264524,143494569065412,-570067537927160,-2476885678390848,774932164205680,-452640,6065087821071018912,-496282690152112332,11994293765115504512,16329889920972001192,285610132349064,-66279745376107790520,2037094872519878048,-74220042389799068464,23988794395945099904,-409266248,3999834077040119596,5012396268390680,-31995802871678301836,-1985581119958152864,-288350400,845340525608093576,-95627763391248,334353175290164,7813284952755648,-265118981604095309272,2166401861637792,-6057275200564874848,-1983083949440483528,-259276035090553040 ,
+4149953792015292,688437392612872413392,-17186997946910631780,137708239628699295222,509757281359305136,-326764684973081408696,-124408913766536986040,-187744579985426584,-68842835070062580504,17232596223379337918,-85066863476833068,-106292917375952344,12449787267768300,-64323900883469340,-98906658928615801368,-1548746227630494,11159811173070720692952,-51664277409501451798,2090188095394290770868,-24899574478841892,19706431199528640,-12907447988108137536,334479519087596904,7421064268391956616,169588293615148718,-22569478302900054,-30869336458371414,-3180205057764892420,15340261667701840220,30092635342643022,261958764439542,1062487002420,-22158962998850846,-129709031454368208,-39418643370415128,-45982560,2438804618898888820,6286761443098782,16635015906097582788,-1525255480317394468,16860455569428992,2703751974307599006736,-63416241899903292,2703865271967344191274,33260955275306027736,-3417517248,-69488666073724000,12430031855436970790,12891237012533038972,-2080629326525148,-21614214117600,81705826989028089822,176549798412720,-12487731873274772,14917116387818376,10815007897329669304192,112847397266113770,-2473686651628121092,34452875060655048,588359198586606304856 ,
+-678209032883760,10592622209346546900,-264917017432459920,2121451282629824280,62309622062950296,-6010706955462196576,-5434863089812241652,1185920929566486012,-1059290285326053312,264896191758494280,591994145291745776,283642618954528904,-74553864744,385197087624,-1815983126032420944,-54265387705332,82660579430999692440,-207973158030370464,31995146946805501488,273188664456,-1115421917162544,-198687004534745136,-3138029666458528440,6296346922060492800,-2359794890569216988,-2870888201897592,-2870838895177848,2316068463550364664,823204033800220464,3827859521698296,495258244248,10526417988911232,-1366484238803940,-15534442736141136,1219771200355120,115200,2102921974288292280,-146750166144486204,3815597001170215068,4807922803845559440,-569044552027080,21688142536839826176,601663906711592880,19338161731518122568,7631472882675248484,-20445601680,1182261617013464172,183848168417005824,-9304440851963138940,-584734647803410812,129392640,1502168070319155600,-7015051703735728,16121917733206052,4139644602796728,86752570186209212304,14354220201159384,-2098782031418505600,-586221231200028672,8905845856095550416 ,
+99785345448,623445276120,-2340,-574311017748,-14753776819320,-389725566628,-2889699116132,-1498598387884,-49856908176,-18118254,-649055528664,1747099510588,-2340,11700,-99786750984,24978072306,232420797120156,1992684,2200347498350,-22996296,499557161760,1277702,-5420926410078,-228501399124182,2148605460478,674023738968,674023738968,-300974556,-19982158606,-898698257568,75150,-1948592737266,449508646106,3694704417696,-499534836780,1728,-76616485125830,24977142180,-3672074033454,24597952,-153730230,58042886121240,299739983594,58716901908822,-7469037357348,3781314,5896880,202473333422,6371721470136,-149397330186,0,99786516728,1299061393752,-3022523149516,-449352079776,232171540703646,-3370118694840,76167133047764,-3548784,14448425021380 ,
+-107057869669,27218378908323260,-680304247283059,5443043883549588,15792184393500,-12911783475382007,-4880555819104862,-14710539710584,-2721161145460644,681855972420861,-7400551753078,-5820658481718,-315737651,1631311615,-3907591018989713,-1579570034286,442415949394674743,-2049008787205198,82628192577115712,656138353,-535434326256,-510227750609034,48687437561050,170427672947724,30087434872463,-721486845724,-721280975078,-154050494356535,598989140572696,961982344051,-517627499134,2088570982251,-513712886335,-3954679523740,535909540320,-2328,57539068309406,1997786399146,635370182322883,-115208958546792,18782403914,107169282290839308,-8451019300376,107200952012974778,1270874328474050,-4181022,-16318266815848,485449981116819,609406621653095,6706311427608,555360,3227962020110976,-1385813230812,3305323678805,441013790386,428677109996386254,3607434230270,-57096791560708,8087901414672,23274797480795541 ,
+2757045873522,457951840758351463,-11432883737694137,91604175982425890,339102748559323,-212532344379737194,-65336088625046760,-5968537606740790,-45794580925354504,11463200216956011,-2956447265976343,-1504165012496180,8275966707015,-42759161319571,-64343249233936944,-1035102412315,7860479042293108337,-37267218480865266,1391147165818583702,-16551933002671,13091520439380,-8586096137421894,15850637839367517,-21392970574904623,11712337469029833,-15014131641606,-20531442779590,-13802957696190076,7304515152874666,20018795929391,172415519620,32464833921,-14737567830585,-86284579602264,-26195167299104,-30576,-7165155041797371,729156133778367,-6443294187696591,-24872828981963736,11208049862963,1896178991723015228,-3018961503632420,1907853933987456298,-12892619911072019,-2333292,-5889952115602486,8268451583791714,55325011588726519,2898523877975253,-14367997800,53142828528293007,96192193812,-8251798994235,-1060983556958,7584715966894394204,75070658208100,7130990191382989,2920066095978352,391928692797356920 ,
+7064677450544,-110339814679344150,2759552264892312,-22098450860594240,-649058566469778,62611530785422248,56613157184625546,-12353343016609654,11034273805344720,-2759335330785474,-6166605680137360,-2954610613788896,776602744,-4012469592,18916490895978904,565264460444,-861047702337953584,2166387062743898,-333282780697692986,-2845711260,11618978407180,2069656297214868,32687809025832080,-65586947158214668,24581196776666554,29905085588044,29904571976268,-24125713161472392,-8575042020999218,-39873536886510,-5158940042,-109650187384476,14234211467222,161817112664108,-12705950111056,-1200,-21905437250037488,1528647564010238,-39745802096195458,-50082529206714696,5927547421290,-225918151408450700,-6267332361556220,-201439184686257724,-79494509195904454,212974356,-12315225177193606,-1915085090599028,96921258872352930,6090985914572814,-1347840,-15647584065661516,73073455137200,-167936644273538,-43121298007668,-903672606038488676,-149523127853464,21862312845082056,6106471158343434,-92769227663579808 ,
+-6438852170046,-35329677477376559,851118866446559,-7084138466907851,-514674220704909,-1133196233926262356,-4138036540057125436,1390301448564069512,3530675510992604,-913782666829192,689909699271137211,341100296791272008,-16504427023297,85272872957365,-339893113454038038,3966223423444,-104493652187756992241,692481916623298121,-284635498651570170,33009069483337,-32168962997684,661140185361926,-3717820073750667605,6255656536118499557,-2759411368349593148,22582399347295,33585357260025,2780367742325545880,689044880089314350,-30099257761598,391163632967,18304966336185,22990028900356,131567961144564,58300761967248,-7776,2087881891136807683,-172456597497742136,4164803915998196799,5675558576949026846,-22039486927961,-23359636677124539644,708162509277556456,-26118960767471585947,8329621375712824779,-35489896,1390126546272922460,-802888824115857,-11121753739293931901,-689786078116917121,28653509040,283279918080634754,-12208452807132,48261305394135,2597436401261030,-93438546681239632840,-112911999971215,-2085218437027373261,-689184438936246324,-159936024332932042 ,
+69110794718,146928602131033371,-3672858422035285,29385075255793969,-21245754182905,417993083907522956,1731382292179417664,-589707714795558515,-14692953916011432,3673727299147669,-292667424644730808,-144662671244496344,32660639587,-168746638111,125214479669511448,-75625712313,46475484259437681974,-303685938171277022,521070501340483390,-65334166325,1182501788286,-2754921872296302,1577233665985408601,-2657607616096619358,1170670878084474459,960169873204,938390049908,-1180064444514210846,-289354912059082344,-1284737570615,-42013637902,-1136269185111,635593277009,5340611090336,-1234227897952,159180,-886979445809787424,73166877918990117,-1763229535102316914,-2407856299547928672,-164104355767,10429836144771877329,-300425906002905548,11600505829175895277,-3526459376716961257,1469360,-589704012116573051,2589107444007382,4720259350652531199,292667377559709143,-56702880,-104498439421296447,797586015728,-1796102828943,-1110133526123562,41719344577504419916,-4723204187958,885869181641258634,292389937225313236,181236667793835297 ,
+0,-17254048314,-19008,24,108,10352282544,38246450976,-12748608648,0,-3882176208,-6326479188,-3259095642,-10368,53568,3163208976,3882157200,890883306735,-6326480160,-48215488743,20736,-55296,0,35945909463,-55356648096,25305920640,-24,18408,-25737268704,-5128283160,0,1294052400,0,-8640,0,69120,0,-19171092708,1581620040,-38245860432,-52049667024,-47928204,199571668419,-6949542516,224877602283,-76491703584,0,-12748817256,958554144,102853530096,10208639304,0,-2636007480,0,-86400,-36,798334601556,120,19171134144,6326480151,3960 ,
+10116409054940,4715510314079252566,-117855776525803652,942873806362550235,379225130077990,857135859787698874,10306504560506341108,-3743547682850654295,-471428528822746596,118135487163790795,-1857895545572479424,-918430579659971164,-211620580340,1093372986820,251216544074171458,-282626676787663,356368262966446213986,-2211357077432031653,14791995209482285460,422545989212,-63094457711776,-88391567765611608,10011972321743353508,-16862313390693021260,7431282981022422023,-16146668069731,-16006402801243,-7508420070854492380,-1752617315658764910,21500343375441,-93176126908627,-58762192711260,-44066434293399,-98394557765740,58046833489572,-439968,-5627745128647080848,464444781542862381,-11098775929741789293,-15292936156804889558,31587917235518,81071461299174382636,-1907056997219496320,88502608856156503109,-22197536015328980380,93696596,-3743721823108989267,84346126812469459,30034164434680594696,1857446189592684162,368695080,-214256076649428805,40264228717328,-70956632689610,-7026606995171100,324285841745796473948,80742597547797,5620719368133485604,1856032180071276496,4385488247652761863 ,
+136959745276,732254088212,1660731186,-365273740792,-10929930749813,-19638996122,-1648524402499,-454826962060,-70071037069,2456520346,-1095320271366,1047711292366,97114,-485530,-127410595192,6294511161,133606689058131,4847914908,5089946636888,-252780626,125887832238,1259442156,-4405407991382,-170030064248124,2505276722056,505295155301,505295169861,253777267290,148301202061,-673726540810,44600,-2028420610170,167916797250,2720083672684,-151517009168,-156,-57013873191290,6294910479,-966855279064,5170809128,139768139442,33313548843009,75852040176,33819378795114,-1965182516113,42048373,-276220876,1456073697583,7045817410767,-456942073297,0,129071309326,1358554640556,-3022796794385,-337185023138,133254153323663,-2526475777693,56676688168508,-78307173,8245969402363 ,
+4852202935152,-52507821794990568,1340219463033192,-10480396631594436,563514447643032,27063598941580488,16574339049107988,-2442169263209604,5252660586266640,-1286347789787148,-1202536736993952,-665138044998048,14197515307272,-73353829088040,8165668473020112,-3608167744428,-693832025225853504,2798121645416676,-158794394172332616,-28395058240656,23078548166688,985550583550248,6328367962761288,-1850593040055264,4614985516792908,-24924554832828,-34389570569148,-4338952936569816,-2312038425546528,33232722014988,-325363685532,-2337468042312,-23714951570604,-143459194811280,-45557919361128,0,-661036501615824,283388090582676,-8644506172651716,-9332997687574680,19248647235816,-171480186680584896,-1205782473467424,-166931154762852972,-17299514487448464,4542096,-2305495503149748,-786213083916228,17557828169103024,1100332785637032,-24648455520,-6749162216915508,1558311517152,-19893567370392,12272825615472,-685920769732264080,124622774164260,616519265990976,1142994374423496,-45638253864368784 ,
+-560597296,147148158280332208,-3678707611657432,29429471641439360,-4511715380576,-69895678428129632,-26671150441134984,-697262277088,-14714817322118016,3678701288166992,209611561184,171412287448,-1725235400,8913716216,-21152556433374032,13558806968,2386969536341110456,-11036070481087720,446698824206504280,3450312952,263950488688,-2759028327167424,-419249225736,-67758622418592,-214997768096,203172973600,204317453408,-657018627870720,3285150036877000,-270903071808,-32872504,-1440,25301516752,1138241987456,-261229323776,-9216,-22607639142336,12994955456,3676800137224360,-262381199319456,-68988470112,578349035008040448,59498777152,578349067182274512,7353534861904976,-608192,86423453984,2627182120102688,2627449397150112,122369371776,2995200,17473850916201704,35533439696,157210496512,-28332578400,2313396140032769984,-1015864234464,22586207495744,24130241928,125931355902051456 ;
+// Smith form
+kill(z);
+
+// W2
+ring R = 0, x, dp;
+number tinit;
+int n = 20;
+matrix m2[n^2+1][n^2+1];
+int i, j, k;
+for (i = 1; i <= n^2; i++)
+   {
+   m2[i, i] = 1;
+   }
+for (i = 1; i <= n^2; i++)
+   {
+   if (i % n == 0)
+      {
+      m2[i, n^2+1] = 1;
+      }
+   }
+for (i = 1; i <= n^2; i++)
+   {
+   if ((i - 1) % n == 0)
+      {
+      m2[n^2+1, i] = n - (i - 1)/n;
+      }
+   }
+for (i = 1; i <= n; i++)
+   {
+   for (j = 1; j <= n; j++)
+      {
+      if (i <> j)
+         {
+         for (k = 1; k <= n-1; k++)
+            {
+            m2[(i-1)*n+k, (j-1)*n+k+1] = n + 1 - j;
+            }
+         }
+      }
+   }
+kill(i, j, k, m2);
+// Smith form
+
+// X and Y
+ring R = (17027, t), (x, y, z), dp;
+minpoly = t^2 + 1;
+
+// X
+poly g;
+tinit = timer;
+print("X");
+poly p4 = (7*t*y*x^2*z^2 - 3*t + t*x*y*z + 11*(x + 1 + t)*y^2 + 5*z + t
++ 1)^4*(3*t*x - 7*t*y + 2*z - 3*t + 1)^5;
+poly q4 = (7*t*y*x^2*z^2 - 3*t + t*x*y*z + 11*(x + 1 + t)*y^2 + 5*z + t
++ 1)^3*(3*t*x - 7*t*y + 2*z + 3*t - 1)^6;
+
+g = gcd(p4, q4);
+timer - tinit;
+tinit = timer;
+print("X+");
+factorize(g);
+timer - tinit;
+kill(g, p4, q4);
+
+// Y
+matrix w[26][11];
+w =        1,  1, 1,  7, z , 12, y , 17, x , 22, t  ,
+           2,  2, 1,  8, z , 13, y , 18, x , 23, t  ,
+           3,  3, 1,  9, z , 14, y , 19, x , 24, t  ,
+           4,  4, 1, 10, z , 15, y , 20, x , 25, t  ,
+           5,  5, 1, 26, 1, 1, 0, 1, 0, 1, 0  ,
+           6,  2, x ,  6, 1, 12, y , 17, x , 22, t  ,
+           7,  3, x ,  7, 1, 13, y , 18, x , 23, t  ,
+           8,  4, x ,  8, 1, 14, y , 19, x , 24, t  ,
+           9,  5, x ,  9, 1, 15, y , 20, x , 25, t  ,
+          10, 10, 1, 26, 1, 1, 0, 1, 0, 1, 0 ,
+          11,  2, x ,  7, z , 11, 1, 17, x , 22, t  ,
+          12,  3, t ,  8, z , 12, 1, 18, x , 23, t  ,
+          13,  4, t ,  9, z , 13, 1, 19, x , 24, t  ,
+          14,  5, t , 10, z , 14, 1, 20, x , 25, t  ,
+          15, 15, 1, 26, 1, 1, 0, 1, 0, 1, 0 ,
+          16,  2, t ,  7, z , 12, y , 16, 1, 22, t  ,
+          17,  3, t ,  8, z , 13, y , 17, 1, 23, t  ,
+          18,  4, y ,  9, z , 14, y , 18, 1, 24, t  ,
+          19,  5, y , 10, z , 15, y , 19, 1, 25, t  ,
+          20, 20, 1, 26, 1, 1, 0, 1, 0, 1, 0 ,
+          21,  2, y ,  7, z , 12, y , 17, x , 21, 1 ,
+          22,  3, z ,  8, z , 13, y , 18, x , 22, 1 ,
+          23,  4, z ,  9, z , 14, y , 19, x , 23, 1 ,
+          24,  5, z , 10, z , 15, y , 20, x , 24, 1 ,
+          25, 25, 1, 26, 1, 1, 0, 1, 0, 1, 0 ,
+          26,  1, z ,  6, z , 11, y , 16, x , 21, t  ;
+
+matrix m[26][26];
+int i, j;
+for (i = 1; i <= 26; i++)
+   {
+   for (j = 1; j <= 5; j++)
+      {
+      m[i, int(w[i, 2*j])] = w[i, 2*j+1];
+      }
+   }
+tinit = timer;
+print("Y");
+det(m);
+timer - tinit;
+kill(i, j, m, w);
+// ---------- Quit ----------
+quit;
